sed匹配特殊欄位並修改下面某行的實現方法

2021-08-14 08:42:25 字數 756 閱讀 9327

有個需求需要修改某配置檔案,其中有很多相同的字段,無法直接去匹配。例如

[mapserver]

#監聽位址

host = 127.0.0.1

#監聽埠

port = 1107

[idipserver]

#監聽位址

host = 127.0.0.1

#監聽埠

port = 1101

[alarmserver]

#監聽位址

host = 127.0.0.1

#監聽埠

port = 1191

其中可能修改alarmserver下面的host,就比較棘手,下面提供一種思路,去修改這個字段

function modifyimpl()

# 取得host偏移的行號

let result=$linenum+$line-1 # 取得符合條件的host的真正行號

ssh -n tomcat@$gsip "sed -i \"$,$c $replace\" $filename" #替換指定行的內容

}

呼叫:

modifyimpl $gsip "fightclient" $fsip

思路是先去匹配上面的特殊字段,如alarmserver,然後記錄下行號,再去從這個行號開始,取得第乙個匹配到host的行號,然後在修改指定行號的內容即可

sed匹配並追加內容 符號作用

sed匹配並追加內容 用來表示模式匹配 正規表示式匹配 的範圍。例 sed命令 s unix s 2 s0 g 會把 on the unix operation system 替換為 on the s 2unix s0 operation system 又例如 sed命令 s 1 9 0 9 g 會...

oracle中修改字段型別並設定欄位不允許為空

alter table 表名 modify 欄位名 要修改的型別 not null 要修改欄位的新型別和原來的型別不相容時,可以通過如下方式解決該問題 1 修改原欄位名name為臨時欄位name new alter table user rename column name to name new ...

sed預設最長的可能性匹配,如何修改到最短匹配?

目前為止,我們只執行了簡單的字串替換。雖然這很方便,但是我們還可以匹配規則表示式。例如,以下 sed 命令將匹配從 開始 到 結束 並且在其中包含任意數量字元的短語。下例將刪除該短語 用空字串替換 sed e s g myfile.html 這是要從檔案除去 html 標記的第乙個很好的 sed 指...