sed匹配多行替換


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是不可改變的.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM