Macos SED在末尾添加新行

Macos SED在末尾添加新行,macos,text,sed,Macos,Text,Sed,如果我在终端应用程序的Mac OS X 10.7.2上执行此操作: $ cat test.txt | od -c 我明白了 这就是我的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 我不要这条新线路。如何修复此问题?在awk中使用p

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

$ cat test.txt | od -c
我明白了

这就是我的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

我不要这条新线路。如何修复此问题?

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

基本结构:

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

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

基本结构:

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