簡體   English   中英

在sed中的匹配模式之間引入新的界線

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM