2013-05-08 307 views
0

我有一个文件测试后追加一条线,与内容sed命令来搜索字符串和搜索的字符串

Hi 
Hello 
I am good. 

我的要求是我必须写一个shell脚本来搜索Hello刺在文件测试在内容got it之后添加新行。

对于这个我使用命令:

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

我提示以下错误:此命令:

sed的:命令乱码:/你好/一 “知道了”

回答

2

试试看:

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

a是append命令。你的榜样读man sed查看详细

测试:

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

难道不需要转义第二个双引号吗? “一个”拿到了它“”? – fedorqui 2013-05-08 12:49:21

+1

'a \ text追加文本,每个嵌入的换行符前面都有一个反斜杠。' – Kent 2013-05-08 12:51:00

+0

@Kent在使用sed'/ Hello/a \'获取它''测​​试后,我仍然收到同样的错误。 – 2013-05-09 05:45:11

0

@Kishore,你的“命令乱码”的错误可能表明您键入您的命令时使用“的AltGr +空间”,而不是一个空间,或你没有使用正规的单引号。

其实空间是没有必要的,如果你只是想穿上跟随比赛线路“知道了”,只是去:

sed '/Hello/agot it' test 

它工作得很好,反斜杠在@肯特的解决方案是没有必要的。