我想添加一個額外的列到一個製表符分隔的文件。 該文件是這樣的:sed添加額外的列
#> cat /tmp/myfile
Aal Fisch_und_Fleisch
Aalsuppe Fisch_und_Fleisch
我想要做的方式是通過SED,匹配全行,用新列打印出來一起。然而,其他列上寫的是線,而不是末端的中間:
#> cat /tmp/myfile | sed 's#^\(.*\)$#\1\t1#g'
Aal 1isch_und_Fleisch
Aalsuppe1 Fisch_und_Fleisch
當我做了一些它的工作原理手動創建線路進行仔細的檢查,但:
#> echo -e "aaaaaaaaaa\taaaaaaaaaaaa\nbbbbbbb\tbbbbbbbb" | sed 's#^\(.*\)$#\1\t1#g'
aaaaaaaaaa aaaaaaaaaaaa 1
bbbbbbb bbbbbbbb 1
我猜對了可能是一個編碼/換行符的問題,這裏是file
是說:
#> file /tmp/myfile
/tmp/myfile: ASCII text, with CRLF line terminators
如果它是一個編碼/換行符的問題,我該怎麼做呢?
既然你在捕獲的組後面有'$','sed'必須在行中間檢測到一個換行符,這對我來說似乎很陌生。 – 2013-02-08 11:42:34