如果我在终端应用程序中的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
我不想要这条新线。我该如何解决这个问题?
答案 0 :(得分:1)
在awk中使用printf
。第一行的特殊情况,以便在没有换行符的情况下打印。所有剩余的行都打印有前一个换行符。这可以确保您永远不会以换行符结束。
基本结构:
awk 'NR==1 { printf("%s", $0); next }
{ printf("\n%s", $0) }'