sed替换行尾

时间:2011-02-11 01:00:46

标签: sed linefeed

我试图在一行的末尾添加一堆0。识别线的方式是它后跟一行以“expr1”

开头 在Vim中,我所做的是:

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

它工作正常。我知道在ubuntu \ n中通常用于终止该行,但每当我这样做时,我得到一个^ @符号,所以\ r \ n对我来说很好。我以为我会用sed来使用它,但它并没有真正起作用。这是我通常写的:

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

3 个答案:

答案 0 :(得分:3)

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

s/$/ 0 0 0 0 0 0/

根据您的环境,您可能需要转义$。

答案 1 :(得分: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

答案 2 :(得分:0)

awk '$(NF + 1) = " 0 0 0 0 0 0"' infile > outfile