sed - 需要在第n行文本匹配后输入文本

时间:2017-10-31 07:45:38

标签: sed

我在脚本中使用下面的代码,它应该匹配hosts.test中的“标题AHS - zarriot CBTS随机Linux服务器”,并在2行匹配字符串之后将t3文件的文本插入hosts.test。但这会引发一些错误。

sed -i.bak '/^title AHS - zarriot CBTS random Linux Servers$/ {N;N; r t3}' hosts.test

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

sed -i.bak '/^title AHS - zarriot CBTS random Linux Servers$/!b;N;N;r t3' file

r t3命令需要以换行符终止。替代方法:

sed -i.bak -e '/^title AHS - zarriot CBTS random Linux Servers$/{N;N;r t3' -e '}' file

使用-e选项将命令分成两部分。或者使用Bash:

sed -i.bak $'/^title AHS - zarriot CBTS random Linux Servers$/{N;N;r t3\n}' file