【问题标题】:gsed add _single_ newline at end of filegsed 在文件末尾添加 _single_ 换行符
【发布时间】:2020-01-09 22:45:38
【问题描述】:

我正在尝试在文件末尾创建一个 single 换行符。 我的命令是这样的:

gsed -i '$a\\r' outfiles/*.txt

不知何故,这会创建 两个 换行符,我无法弄清楚我做错了什么。

有什么想法吗?

【问题讨论】:

    标签: sed newline gnu


    【解决方案1】:

    在我的第一个想法中,我会在最后一行用换行符替换行尾。

    sed '$s/$/\n/'
    

    但我的第二个想法很好:

    sed '$G'
    

    从保持空间中抓取会将换行符附加到模式空间,然后将保持空间附加到模式空间。因为保持空间是空的,它实际上只添加了换行符。

    【讨论】:

    • 保留空间是空的,因为没有定义替换?
    • 保持空间是空的,因为没有附加任何东西来保持空间。您可以使用hH 复制/附加模式空间以保留空间。
    【解决方案2】:

    保持简洁明了,只需使用 gawk:

    gawk -i inplace 'ENDFILE{print ""}' outfiles/*.txt
    

    【讨论】:

      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2012-04-12
      相关资源
      最近更新 更多