2 在一堆文本文件(.vb)中给出以下内容: Partial Class [A-Za-z0-9_] Inherits System.Web.UI.Page End Class 我正在尝试grep查找具有此基本空代码文件的文件,以生成这些文件的列表,并删除它们。 grep "Inherits System.Web.UI.Page[:space:]*End Class" -r 但是上面的grep不起作用......在阅读了POSIX字符类和grep手册页后,我很难过 regex grep — enorl76 source
1 默认情况下, grep 只匹配单行。但你可以使用 -z ( --null-data )强制它将输入视为一组行的选项: grep -Pzo -r "Inherits System.Web.UI.Page(\s|\n)*End Class" * 另一种选择是使用 pcregrep 随着 -M 选项,像这样: pcregrep -M 'Inherits System.Web.UI.Page(\n|\s)*End Class' — That Brazilian Guy source grep始终将输入视为一组行。这是完整的引用 手册页 :“将输入视为一组行,每行以零字节(ASCII NUL字符)而不是换行符结束。”所以, -z 使得它将输入视为一组以null结尾的行而不是换行符终止的行。 — clacke
-z
使得它将输入视为一组以null结尾的行而不是换行符终止的行。