silver_searcher (ag) 有多个搜索表达式?
silver_searcher (ag) with multiple search expressions?
silver_searcher 是否支持指定多个搜索表达式,例如 grep
中的 -e
?
我在 document/help 中找不到任何选项。
是的,您可以通过用竖线分隔每个模式来搜索多个模式 (|
):
ag 'pattern1|pattern2'
根据文档,它不支持多种搜索模式。也就是说,它确实支持使用并行,因此您可以触发多个 ag 实例以进行多重搜索:
echo "foo\nbar\nbaz" | parallel 'ag --parallel --color "{}" *'
使用--parallel 开关的输出将是文件名、行号和匹配项。如果这太花哨了,您始终可以在模式搜索中使用 OR 运算符:
ag --color "foo|bar|baz" *
您可能想要使用两个布尔运算符进行搜索:
- AND:
ag -l pattern1 | xargs ag -l pattern2 | xargs ag 'pattern1|pattern2'
- Add
-d '\n'
到 xargs 以处理文件名上的空格。
- 或:
ag 'pattern1|pattern2'
- 不:
ag -v 'pattern'
-l
--files-with-matches
:
Only print the names of files containing matches, not the matching lines. An empty query will print all files that would be searched.
-v
--invert-match
: Match every line not containing the specified pattern.
silver_searcher 是否支持指定多个搜索表达式,例如 grep
中的 -e
?
我在 document/help 中找不到任何选项。
是的,您可以通过用竖线分隔每个模式来搜索多个模式 (|
):
ag 'pattern1|pattern2'
根据文档,它不支持多种搜索模式。也就是说,它确实支持使用并行,因此您可以触发多个 ag 实例以进行多重搜索:
echo "foo\nbar\nbaz" | parallel 'ag --parallel --color "{}" *'
使用--parallel 开关的输出将是文件名、行号和匹配项。如果这太花哨了,您始终可以在模式搜索中使用 OR 运算符:
ag --color "foo|bar|baz" *
您可能想要使用两个布尔运算符进行搜索:
- AND:
ag -l pattern1 | xargs ag -l pattern2 | xargs ag 'pattern1|pattern2'
- Add
-d '\n'
到 xargs 以处理文件名上的空格。
- Add
- 或:
ag 'pattern1|pattern2'
- 不:
ag -v 'pattern'
-l
--files-with-matches
: Only print the names of files containing matches, not the matching lines. An empty query will print all files that would be searched.
-v
--invert-match
: Match every line not containing the specified pattern.