【问题标题】:Delete line ending with a newline character in text file删除文本文件中以换行符结尾的行
【发布时间】:2011-03-21 15:02:47
【问题描述】:

我需要删除大量文本文件中的同一行。我一直在尝试使用 sed,但我无法让它在最后删除换行符。以下成功删除了行,但没有删除换行符:

sed -i -e 's/VERSION:1//' *.txt

我也尝试使用以下方法删除换行符,但它不起作用:

sed -i -e 's/VERSION:1\n//' *.txt

是否可以在 sed 替代命令中指定换行符,或者是否有任何其他命令行工具可以用来实现我的目标?谢谢

【问题讨论】:

    标签: macos sed terminal


    【解决方案1】:
    sed '/VERSION:1/{:q;N;s/VERSION\n//g;t q}' file
    

    【讨论】:

      【解决方案2】:

      您可以使用sed 命令:

      sed -i -e '/VERSION:1/d'
      

      为此。

      以下成绩单举了一个例子:

      pax> echo 'hello
      > goodbye
      > hello again' | sed '/oo/d'
      hello
      hello again
      

      您还应该检查是否要匹配整行,例如:

      sed -i -e '/^VERSION:1$/d'
      

      因为,就目前而言,这也会删除如下行:

      VERSION:10
      CONVERSION:1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-28
        • 2012-01-27
        • 2011-09-09
        • 2017-10-02
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多