在下面的示例中,我可以使用文字换行符在 前后添加一个空行3
。可以\n
代替使用吗?我正在使用 Gnu sed 4.5。
root@u1804:~# seq 5 | sed -r -e '/3/{i\
> ' -e 'a\
> ' -e '}'
1
2
3
4
5
root@u1804:~#
Run Code Online (Sandbox Code Playgroud)
如果你使用\n
它会工作,但你会在命令之前和之后得到两个换行符,i\
并且a\
已经在打印模式空间之前和之后分别添加了一个换行符,所以
seq 5 | sed -e '3i\\n' -e '3a\\n'
Run Code Online (Sandbox Code Playgroud)
印刷
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
如果出于某种原因,您希望它在一行中,您可以使用多个-e
xpressions:
seq 5 | sed -e '3{i\' -e '' -e 'a\' -e '' -e '}'
Run Code Online (Sandbox Code Playgroud)
尽管在这种情况下,仅使用保留空间更容易/更短:
seq 5 | sed '3{G;H;x;}'
Run Code Online (Sandbox Code Playgroud)