regex - 在文件中查找单词并删除到文件末尾

标签 regex linux sed

我需要在文件中找到一个表达式并删除它以及之后的所有内容直到文件末尾 例如我有这样的文件:

<html>
    <body>
        <p>HELLO WORLD!</p>
    </body>
</html><script>
    HELLO
    I
    AM
    VIRUS
</script>

我想把它改成这样:

<html>
    <body>
        <p>HELLO WORLD!</p>
    </body>
</html>

它必须用sed解决,但我不知道如何在sed中匹配多行。

最佳答案

使用这个:

sed '/<script>/{s/<script>.*$//;q;}' infile > outfile

您不需要匹配多行,只需匹配一行并退出 q 停止打印剩余部分。

关于regex - 在文件中查找单词并删除到文件末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17388546/

相关文章:

c++ - Qt 和正则表达式

PHP Inotify 非阻塞方式

linux - 通过 Jenkins SSH 插件连接和普通 ssh 之间的区别

bash - sed 创建重复行而不是替换现有行

linux - 在 Linux 中比较行尾的两个文件

正则表达式填字游戏求解器

regex - 在 shell 脚本中使用正则表达式从字符串中提取 url

Python字符串正则表达式联合返回一堆空字符串

linux - 禁用滴答中断时如何更新时间

linux - 删除第一个冒号和第一个制表符之间的所有内容