2013-05-08 302 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 

它工作得很好,反斜槓在@肯特的解決方案是沒有必要的。