File 如何使用grep查找包含2个字符串的文件?
我正在一个包含数百个源代码文件的项目中搜索宏的定义 我相当肯定宏都是在一个文件中定义的 如果我对单个宏执行File 如何使用grep查找包含2个字符串的文件?,file,grep,find,File,Grep,Find,我正在一个包含数百个源代码文件的项目中搜索宏的定义 我相当肯定宏都是在一个文件中定义的 如果我对单个宏执行grep-r搜索,则会出现超过1000次点击 我想搜索每个文件,并找到包含两个宏名称的文件 这可以用grep来完成吗 例如,类似这样的事情: grep -r "MACRO1" AND "MACRO2" ./ 使用: -Pperl正则表达式 -z将换行符更改为空字符 -r递归 -l仅打印文件名 (?s)生成匹配换行符 MACRO1.+MACRO2查找MACRO1在MACRO2之前的时间 M
grep-r
搜索,则会出现超过1000次点击
我想搜索每个文件,并找到包含两个宏名称的文件
这可以用grep来完成吗
例如,类似这样的事情:
grep -r "MACRO1" AND "MACRO2" ./
使用:
perl正则表达式-P
将换行符更改为空字符-z
递归-r
仅打印文件名-l
生成(?s)
匹配换行符
查找MACRO1在MACRO2之前的时间MACRO1.+MACRO2
查找MACRO2在MACRO1之前的时间MACRO2.+MACRO1
perl正则表达式-P
将换行符更改为空字符-z
递归-r
仅打印文件名-l
生成(?s)
匹配换行符
查找MACRO1在MACRO2之前的时间MACRO1.+MACRO2
查找MACRO2在MACRO1之前的时间MACRO2.+MACRO1
- 另一种方法是
grep -rlZ 'MACRO1' ./ | xargs -0 grep -l 'MACRO2'
将给出包含grep-rlZ'MACRO1'。/
MACRO1
是用空字符分隔文件名-Z
将给出包含xargs-0 grep-l'MACRO2'
MACRO2
- 另一种方法是
grep -rlZ 'MACRO1' ./ | xargs -0 grep -l 'MACRO2'
将给出包含grep-rlZ'MACRO1'。/
MACRO1
是用空字符分隔文件名-Z
将给出包含xargs-0 grep-l'MACRO2'
MACRO2
- 带gnu
grep
:
grep -lrZ 'macro1' * |xargs -0 grep -l 'macro2'
它将打印包含两个宏的文件名。使用gnu
grep
:
grep -lrZ 'macro1' * |xargs -0 grep -l 'macro2'
它将打印包含两个宏的文件名。挑剔:
-z
使用空字符作为分隔符,而不是换行符。。。所以,如果输入文件包含空字符,它不会一次读取整个文件。.挑剔:-z
使用空字符作为分隔符,而不是换行符。。。所以,若输入文件包含空字符,它不会一次读取整个文件。。