代码之家  ›  专栏  ›  技术社区  ›  RunLoop

删除文本文件中以换行符结尾的行

  •  0
  • RunLoop  · 技术社区  · 14 年前

    我需要删除大量文本文件中的同一行。我一直在尝试使用sed,但是我不能让它删除最后的换行符。以下操作成功删除行,但不删除换行:

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

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

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

    2 回复  |  直到 14 年前
        1
  •  3
  •   paxdiablo    14 年前

    你可以用 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
    
        2
  •  2
  •   ghostdog74    14 年前
    sed '/VERSION:1/{:q;N;s/VERSION\n//g;t q}' file