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

Shell sed命令搜索字符串并在搜索的字符串后追加一行,shell,unix,sed,Shell,Unix,Sed,我有一个文件测试,内容是 Hi Hello I am good. 我的要求是我必须编写一个shell脚本来搜索文件测试中的Hellosting,并在它后面添加一行新的内容got 为此,我使用以下命令: sed '/Hello/ a "got it"' test 我收到此命令的以下错误: sed:command乱码:/Hello/a“明白了” 尝试: 一个是append命令。有关详细信息,请阅读man sed 用您的示例进行测试: kent$ echo "Hi Hello I am go

我有一个文件测试,内容是

Hi
Hello 
I am good.
我的要求是我必须编写一个shell脚本来搜索文件测试中的
Hello
sting,并在它后面添加一行新的内容
got

为此,我使用以下命令:

sed '/Hello/ a "got it"' test
我收到此命令的以下错误:

sed:command乱码:/Hello/a“明白了”

尝试:

一个
是append命令。有关详细信息,请阅读
man sed

用您的示例进行测试:

kent$  echo "Hi
Hello 
I am good."|sed '/Hello/ a \"got it"'
Hi
Hello 
"got it"
I am good.
@Kishore,您的“command-garbled”错误可能表明您在键入命令时使用了“AltGr+空格”而不是空格,或者您没有使用常规的单引号

事实上,空格根本不是必需的,如果你只是想在比赛结束后的一行上写上“got it”,那就去:

sed '/Hello/agot it' test

它工作得非常好,@Kent的解决方案中的反斜杠是不必要的。

是否有必要跳过第二个双引号
a\'got it\'
a\text-Append-text,每个内嵌的换行符前面都有一个反斜杠。
@Kent在尝试sed'/Hello/a\'got it'”测试后,我仍然收到相同的错误。
sed '/Hello/agot it' test