【发布时间】:2013-05-02 16:59:12
【问题描述】:
我有一个文件测试,里面有内容
Hi
Hello
I am good.
我的要求是我必须编写一个 shell 脚本来搜索文件 test 中的 Hello sting 并在其后添加一个新行,内容为 got it。
为此,我使用命令:
sed '/Hello/ a "got it"' test
我收到此命令的以下错误:
sed:命令乱码:/Hello/ “知道了”
【问题讨论】:
我有一个文件测试,里面有内容
Hi
Hello
I am good.
我的要求是我必须编写一个 shell 脚本来搜索文件 test 中的 Hello sting 并在其后添加一个新行,内容为 got it。
为此,我使用命令:
sed '/Hello/ a "got it"' test
我收到此命令的以下错误:
sed:命令乱码:/Hello/ “知道了”
【问题讨论】:
尝试:
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.
【讨论】:
a \"got it\" '?
a \ text Append text, which has each embedded newline preceded by a backslash.
@Kishore,您的“命令乱码”错误可能表明您在键入命令时使用了“AltGr + Space”而不是空格,或者您没有使用常规的直立单引号。
其实空格根本不需要,如果你只是想在比赛后面的那一行写上“得到它”,那就去吧:
sed '/Hello/agot it' test
效果很好,@Kent 解决方案中的反斜杠是不必要的。
【讨论】: