2012-04-19 4 views
1

に新しい行を追加します。SEDは最後

$ cat test.txt | od -c 

が、私は私のテストの実際のコンテンツだ

0000000 t e s t 1 \n t e s t 2      
0000013 

を取得します。 txtファイル。 OK。

しかし、私がsedを実行すると、各ファイルの新しい行が追加されます。

$ sed 's/e/X/g' test.txt | od -c 
0000000 t X s t 1 \n t X s t 2 \n     
0000014 

私はこの新しい行を望ましくありません。これをどうすれば解決できますか?

答えて

1

awkでprintfを使用してください。特別な場合は改行なしで印刷されるように最初の行。残りの行はすべて、先行する改行で印刷されます。これにより、改行で終わることはありません。

基本構造:

awk 'NR==1 { printf("%s", $0); next } 
    { printf("\n%s", $0) }'