【问题标题】:remove last N lines from file bash从文件bash中删除最后N行
【发布时间】:2015-09-01 05:55:03
【问题描述】:

我正在尝试从文件中删除一些文本,我需要使用字符串查找行号,然后从该行删除到文件末尾。

我尝试使用 sed 并使用字符串作为搜索词输出到新文件,但它不保留行,它只是将整个文件打印在一行上,这没有帮助,因为脚本的其余部分依赖于行数字。 到目前为止我的代码是:

file=$(sed -ie '/<div class="col-wrapper">/,$d' < file1.txt)  
echo $file > file.txt

【问题讨论】:

    标签: bash sed


    【解决方案1】:

    您可以在sed 中使用内联编辑:

    sed -i '/<div class="col-wrapper">/,$d' file1.txt
    

    保存对file1.txt的更改

    【讨论】:

    • 该死,我以为我试过了!现在我觉得自己完全傻了!非常感谢!!
    【解决方案2】:

    这可能对你有用(GNU sed):

    sed -i '/<div class="col-wrapper">/Q' file1.txt
    

    【讨论】:

    • Anubahava 的回答已经很好了,你能解释一下 GNU sed 和普通 sed 之间的区别吗?
    • @JONAS402 GNU sed 有其他命令,请参阅here。在这种情况下,Q 退出文件的处理,而不打印它匹配的地址。如果文件很长并且匹配文件靠近文件的前面,这可能是一个更有效的解决方案。
    猜你喜欢
    • 2011-06-20
    • 2017-07-16
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 2013-06-05
    • 2022-11-14
    相关资源
    最近更新 更多