一尘不染

如何在文件中搜索多行模式?

linux

我需要找到所有包含特定字符串模式的文件。我想到的第一个解决方案是使用通过 xargs grep 传递的 find : __

find . -iname '*.py' | xargs grep -e 'YOUR_PATTERN'

但是,如果我需要找到跨越多行的模式,那我就陷入困境,因为香草grep无法找到多行模式。


阅读 369

收藏
2020-06-02

共1个答案

一尘不染

因此,我发现 pcregrep 代表 Perl兼容正则表达式GREP

例如,您需要找到文件中 __name_ 变量后紧跟 __description_ 变量的文件:

find . -iname '*.py' | xargs pcregrep -M '_name.*\n.*_description'

提示:您需要在模式中包括换行符。根据您的平台,它可能是’\ n’,\ r’,’\ r \ n’,…

2020-06-02