我想添加一个额外的列到一个制表符分隔的文件。 该文件是这样的: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