在下面的示例中,我可以使用文字换行符在之前和之后添加空行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:~#
答案1
如果您使用\n
它,它会起作用,但您最终会在命令之前和之后有两个换行符,i\
并且a\
已经在打印模式空间之前和之后分别添加一个换行符,所以
seq 5 | sed -e '3i\\n' -e '3a\\n'
印刷
1
2
3
4
5
如果出于某种原因,您希望将其放在一行中,则可以使用多个-e
表达式:
seq 5 | sed -e '3{i\' -e '' -e 'a\' -e '' -e '}'
尽管在这种情况下,使用保留空间更容易/更短:
seq 5 | sed '3{G;H;x;}'