3.sed語法與命令定址
阿新 • • 發佈:2019-01-03
sed語法中的命令定址部分
數字定址:用行數來確定修改內容地址
sed '4s/abs/A/' passwd 將passwd中第4行中的abc改成A
sed '2,5s/abs/A/' passwd 匹配第2行到第5行
sed '2,+5s/abs/A/' passwd 匹配第2行開始往後加2行(不包括第2行)
sed '2,~5s/abs/A/' passwd 匹配第2行開始到下一個5的倍數行
sed '4~3s/abs/A/' passwd 匹配第4行開始每隔3行(包括第4行)
sed '$s/abs/A/' passwd 匹配最後1行(第一行不是用^ , 而是直接用1)
sed '4!s/abs/A/' passwd !表示取反
正則定址 :用正則內容來確定修改內容地址
sed '/正則表示式/s/abs/A/' 在命令前加// , 匹配符合/ /之間的正則表達的行
兩個 /正則/ 之間用,相連 表示對符合兩個正則之間的內容進行修改
^$ 表示空行
^ 表示以...開頭的行
分組命令: 同一範圍內兩個替換可以用{}括起來,中間加分號
例:sed '/^\.TS/,/^\.TE/{s/CN/China/;s/Beijing/BJ/}' file.txt 表示把以.TS開頭的行到以.TE結尾的行之間的內容中CN改成China,Beijing改成BJ。
數字定址:用行數來確定修改內容地址
sed '4s/abs/A/' passwd 將passwd中第4行中的abc改成A
sed '2,5s/abs/A/' passwd 匹配第2行到第5行
sed '2,+5s/abs/A/' passwd 匹配第2行開始往後加2行(不包括第2行)
sed '2,~5s/abs/A/' passwd 匹配第2行開始到下一個5的倍數行
sed '4~3s/abs/A/' passwd 匹配第4行開始每隔3行(包括第4行)
sed '$s/abs/A/' passwd 匹配最後1行(第一行不是用^ , 而是直接用1)
sed '4!s/abs/A/' passwd !表示取反
正則定址
sed '/正則表示式/s/abs/A/' 在命令前加// , 匹配符合/ /之間的正則表達的行
兩個 /正則/ 之間用,相連 表示對符合兩個正則之間的內容進行修改
^$ 表示空行
^ 表示以...開頭的行
分組命令: 同一範圍內兩個替換可以用{}括起來,中間加分號
例:sed '/^\.TS/,/^\.TE/{s/CN/China/;s/Beijing/BJ/}' file.txt 表示把以.TS開頭的行到以.TE結尾的行之間的內容中CN改成China,Beijing改成BJ。