我想通过模式之间的隐式AND获得多模式匹配,即相当于在一个序列中运行几个 grep:
grep pattern1 | grep pattern2 | ...
Run Code Online (Sandbox Code Playgroud)
那么如何将其转换为类似的东西?
grep pattern1 & pattern2 & pattern3
Run Code Online (Sandbox Code Playgroud)
我想使用单个 grep,因为我正在动态构建参数,因此所有内容都必须放在一个字符串中。使用过滤器是系统特性,而不是 grep,所以它不是它的论据。
不要将此问题与:
grep "pattern1\|pattern2\|..."
Run Code Online (Sandbox Code Playgroud)
这是一个OR多模式匹配。
更多的时候我喜欢承认我寻找一个包含一些字符串的文件。
目前我这样做:
grep -rl string1 | xargs grep -l string2 | xargs grep -l string3
Run Code Online (Sandbox Code Playgroud)
有没有更漂亮的工具?
这greps 为string1orstring2或string3。
grep -rl -e string1 -e string2 -e string3
Run Code Online (Sandbox Code Playgroud)
我想包含的文件string1和string2和string3,但不一定在同一行。
也许现代greps ( ag/ack/rg/sift) 之一可以做到这一点?