sed
-i
'/aaa/{:a;n;s/123/xyz/g;/eee/!ba}'
yourfile
如題:
aaa
123
123
123
123
123
eee
怎么匹配aaa~eee(開始結束字符串確定),然后替換123這樣的
先匹配aaa,匹配到后執行大括號里的語句。
n 讀取下一行
s/123/xyz/g 將123替換為xyz,全局替換,同一行中出現幾次替換幾次
:a 設定跳轉標簽a
/eee/!ba 若當前行匹配不上eee,則跳轉到標簽a處繼續執行,構成一個循環。若匹配到eee,則退出循環,sed重新對讀入的每行匹配aaa。
由於sed沒有加-n靜默選項,所以默認對每行數據處理后都打印。
其中:a和!ba中的a是可以隨意改變的,其中的b是不可改變的.