2011-02-11 145 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