我需要找到所有包含特定字符串模式的文件。我想到的第一个解决方案是使用通过 xargs grep 传递的 find : __
find . -iname '*.py' | xargs grep -e 'YOUR_PATTERN'
但是,如果我需要找到跨越多行的模式,那我就陷入困境,因为香草grep无法找到多行模式。
因此,我发现 pcregrep 代表 Perl兼容正则表达式GREP 。
例如,您需要找到文件中 __name_ 变量后紧跟 __description_ 变量的文件:
find . -iname '*.py' | xargs pcregrep -M '_name.*\n.*_description'
提示:您需要在模式中包括换行符。根据您的平台,它可能是’\ n’,\ r’,’\ r \ n’,…