Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在文件中查找word并删除到文件末尾_Regex_Linux_Sed - Fatal编程技术网

Regex 在文件中查找word并删除到文件末尾

Regex 在文件中查找word并删除到文件末尾,regex,linux,sed,Regex,Linux,Sed,我需要在一个文件中找到一个表达式,并将其删除,然后将其删除到文件末尾 例如,我有如下文件: <html> <body> <p>HELLO WORLD!</p> </body> </html><script> HELLO I AM VIRUS </script> 你好,世界 你好 我 是 病毒 我想把它改成这样: <html&g

我需要在一个文件中找到一个表达式,并将其删除,然后将其删除到文件末尾 例如,我有如下文件:

<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
sed'/{s/*$/;q;}'infle>outfile

您不需要匹配多行,只需匹配一行并使用
q
退出即可停止打印其余的行。

您可以使其更简洁(也更模糊):
'/.*$/{s////;q}'
-
s///
中的空正则表达式将重复使用最后匹配的表达式。