2013-08-30 48 views
1

我需要替換每個\ n在爲「\ n(雙引號,然後換行)線。SED不能代替預期

這應該工作,但它什麼都不做。無論是報告沒有錯誤。任何線索有人

sed -i 's/\n/\"\n/' filename 

之前,該文件包含:?

line 1 
line 2 

後,它包含完全相同的

由於

  • 波爾特
+0

我要補充:行由換行符分隔,我也試過這個:sed -i's/\ n/\「\ n/g'文件名具有相同的效果,沒有錯誤,對文件沒有改變 – Balthasar

回答

2

嘗試以下:

sed -i 's/$/"/' filename 

用於$來表示線的末尾。

5

一行不能包含\n,因爲\n是行之間的分隔符。 sed一次只能在一行上運行,並且換行符不包含在其中。

如果你想在每行結束前把一個字符,使用$正則表達式:

sed -i 's/$/"/' filename 
1

用awk

awk '{$0=$0"\""}1' filename 
+0

只是出於興趣,'1'是什麼意思行動結束? – Juto

+0

當一個測試是真的(因爲1總是)做默認行動'print $ 0'所以你可以使用'1 {打印$ 0}'或者只打印'1' – Jotne