sed命令搜索字符串并在搜索字符串后追加一行

时间:2013-05-08 12:45:26

标签: shell unix sed

我有一个文件测试,内容

Hi
Hello 
I am good.

我的要求是我必须编写一个shell脚本来搜索文件测试中的Hello sting,并在其后添加一个内容为got it的新行。

为此,我使用命令:

sed '/Hello/ a "got it"' test

我收到此命令的以下错误:

  

sed:命令乱码:/ Hello / a“搞定了”

2 个答案:

答案 0 :(得分:2)

尝试:

sed '/Hello/ a \"got it"' file

a是追加命令。请阅读man sed了解详情

用你的例子测试:

kent$  echo "Hi
Hello 
I am good."|sed '/Hello/ a \"got it"'
Hi
Hello 
"got it"
I am good.

答案 1 :(得分:0)

@Kishore,你的"命令乱码"错误可能表示您使用了" AltGr + Space"键入命令时没有使用空格,或者您没有使用常规的直接单引号。

事实上,这些空间根本不是必需的,如果你只是想放置它,那就得到它了#34;在比赛结束后的线上,只需:

sed '/Hello/agot it' test

效果非常好,@ Kent解决方案中的反斜杠不是必需的。