2011-02-11 212 views
1

我试图在一行的末尾添加一堆0。该行确定的方式是,它后面是与Vim的“表达式1”sed替换行结尾

开始我做的是一个行:

s/\nexpr1/ 0 0 0 0 0 0\rexpr1/ 

,它工作正常。我知道,在ubuntu \ n是通常用于终止行的东西,但每当我这样做,我得到一个^ @符号,所以\ r适合我。我以为我会用这个sed,但它并没有真正的工作。这是我通常写的:

sed "s/\nexpr1/ 0 0 0 0 0 0\rexpr1/" infile > outfile 

回答

3

行尾标记是$。试试这个:

s/$/ 0 0 0 0 0 0/ 

根据你的环境,你可能需要逃避$。

0
awk '{$0=$0" 0 0 0 0 0 "}1' file > tmp && mv tmp file 

ruby -i.bak -ne '$_=$_.chomp!+" 0 0 0 0 0\n";print' file 
0
awk '$(NF + 1) = " 0 0 0 0 0 0"' infile > outfile 
+0

创建另一个字段会影响FS变量。以选项卡作为分隔符的文件将成为空格。解决这种现象的一个解决方法是指定一个不太可能出现在文件中的字段分隔符,例如-F“@#@#” – kurumi 2011-02-11 02:11:59