在sed中匹配模式之间引入新行

时间:2017-06-29 06:55:32

标签: linux unix sed

我有一个文件,其中一些模式如下:^@^@+123^@

我想在模式之间引入新的行字符:

^@
+123^@

我尝试了sed -i 's/\x00\x00+...\x000/\n/g' filename

但是上面的行正在删除搜索模式。有没有办法保持模式?

2 个答案:

答案 0 :(得分:0)

您可以在一个组中捕获您的模式,然后在之后添加换行符之前重新引入它,例如:

^@

如果您想用新行替换另外两个^@个字符之间的sed -i 's/\(\^@[^^]*\)\^@\([^^]*\^@\)/\1\n\2/g' filename ,可以这样做:

<p><a href="adminlogin.php" target="self">logout</a></p>

答案 1 :(得分:0)

这会将{em>第二个 ^@替换为\n

sed -i 's/\^@/\n/2' filename