实际上我有一个名为test1.txt
.
在该文件中,我有以下五行:
'test message1'
'test message2'
'test message3'
'test message4'
'test message5'
Run Code Online (Sandbox Code Playgroud)
现在我想添加一个新行'testing testing'
到test1.txt
文件,后'test message1'
线。怎么做?
Mic*_*mer 21
这是a
命令的作用:
sed -e "/test message1/a\\
'testing testing'" < data
Run Code Online (Sandbox Code Playgroud)
此命令将:
将跟随此命令的文本行(除了最后一个以 \ 结尾的每一行都从输出中删除)排队,以便在当前循环结束时或读取下一个输入行时输出。
所以在这种情况下,当我们匹配一行时/test message1/
,我们运行a
带有文本参数“ 'testing testing'
”的命令ppend ,它成为文件的新行:
'test message1'
'testing testing'
'test message2'
'test message3'
'test message4'
'test message5'
Run Code Online (Sandbox Code Playgroud)
您可以通过用反斜杠结束每一非最终行来插入多行。上面的双反斜杠是为了防止shell吃掉它;如果您在独立sed
脚本中使用它,则使用单个反斜杠。GNU 也sed
接受紧随其后的单行文本a
,但这不可移植。
和sed
:
sed "s/'test message1'/'test message1'\n'testing testing'/g"
Run Code Online (Sandbox Code Playgroud)
从这个答案中,您还可以使用:
sed "/'test message1'/a 'testing testing'"
Run Code Online (Sandbox Code Playgroud)