SED最后添加了新的产品线

时间:2012-04-19 11:15:08

标签: macos text sed

如果我在终端应用程序中的Mac OS X 10.7.2上执行此操作:

$ cat test.txt | od -c

我得到了

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

这是我的test.txt文件的真实内容。确定。

但如果我执行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 个答案:

答案 0 :(得分:1)

在awk中使用printf。第一行的特殊情况,以便在没有换行符的情况下打印。所有剩余的行都打印有前一个换行符。这可以确保您永远不会以换行符结束。

基本结构:

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