【问题标题】:SED adds new line at the endSED 在末尾添加新行
【发布时间】:2012-04-30 21:29:28
【问题描述】:

如果我在 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

我不想要这条新线路。我该如何解决这个问题?

【问题讨论】:

    标签: macos text sed


    【解决方案1】:

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

    基本结构:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-14
      • 2012-08-15
      • 1970-01-01
      • 2012-10-02
      • 2015-09-27
      • 1970-01-01
      • 2018-07-05
      • 2011-01-06
      相关资源
      最近更新 更多