2017-04-11 70 views
1

我想評論abc.c中的第2行,並在文件的第3行添加文本New second line如何評論一行並在其下插入另一行?

abc.c

First line 
Second line 
Third line 

我修改的文件應該像

First line 
//Second line 
New second line 
Third line 

我已經使用命令

sed 's/Second line/\/\/Second line\ 
New second line/g' abc.c > tmp.c && mv tmp.c abc.c 

嘗試,但它給出了錯誤的 「sed命令亂碼」關於sunOS 5.10

任何人都可以請告訴我什麼是正確的命令使用?

回答

0

嘗試:

sed "s/Second line/\/\/&\\ 
New second line/g" abc.c > tmp.c && mv tmp.c abc.c 
+0

@Kripalini嗨。它能爲您提供幫助嗎? – Nick

0

sed -i.bak -e"s/Second line/\/\/&\nNew second line/;" abc.c

文件之後內容:

First line 
//Second line 
New second line 
Third line 
+0

做'p'也會複製文件中的每一行,然後必須用'-n'來壓制。重點是什麼? '\ n'不適用於所有平臺(例如macOS),而嵌入式文字換行符則適用。 {}是不必要的。 – Nick

+0

我沒有設法在我的機器上使用您的答案,(在Windows上的GNU sed版本4.2.1)。可能是因爲我不知道如何使用嵌入式換行符。根據你的解釋,我將不勝感激。我的版本是在我的機器上運行的單線程版本。所以我認爲我提供了對我有用的東西,作爲替代答案。我承認'-n'和'p'的使用是無效率的冗餘。我將編輯答案。感謝您指出。 – Yunnosch

+0

我認爲OP可能與我所瞭解的嵌入換行符有相同的困難。因此,如果你解釋它,你可能會爲許多upvotes(至少OP接受和我upvote)設置。 – Yunnosch

相關問題