![](/img/trans.png)
[英]sed to replace lines matched by a pattern range if one line match a condition
[英]Introducing a new line between a matched pattern in sed
我有一個文件,其中的某些模式如下: ^@^@+123^@
我想在模式之間引入換行符,如下所示:
^@
+123^@
我嘗試了sed -i 's/\\x00\\x00+...\\x000/\\n/g' filename
。
但是上面的行是刪除搜索的模式。 有什么辦法可以保持模式嗎?
您可以將您的模式捕獲到一個組中,然后在以后重新引入它作為替換,然后在其后添加換行符,例如:
sed -i 's/(\x00\x00+...\x00)/\1\n/g' filename
如果您想更換^@
其他兩個之間^@
用新行字符,你可以不喜歡它:
sed -i 's/\(\^@[^^]*\)\^@\([^^]*\^@\)/\1\n\2/g' filename
這會將第二個 ^@
替換為 \\n
sed -i 's/\\^@/\\n/2' filename
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.