Silver Searcher:我怎样才能仅 return 匹配某个模式的文件夹结果?
Silver Searcher: How can I only return results in folders matching a pattern?
我的文件结构是这样的:
A
G (want to ignore)
H (want to ignore)
X (contains files I want to search)
B
G (want to ignore)
H (want to ignore)
X (contains files I want to search)
C (want to ignore)
X (contains files I want to search)
我只想 return 结果,其中 X 是 某处 目录路径。
看起来我可以使用 ag foo --ignore={G,H}
,但是要忽略的文件夹列表会非常(几乎令人望而却步)长。我通常想在所有文件夹中搜索,这样我就可以手动构建一个包含所有内容的全局忽略文件,并在我想忽略大部分内容时将其交换到位。
我发现此语法允许我在 A
和 B
的 X
文件夹中搜索,所以我很接近!
ag foo */X
所以问题本质上是:我怎样才能拥有任意数量的正斜杠(0、1 或更多)?
简单的ag
命令是不够的
我认为这不仅仅是通过 ag
(白银搜索者)命令。您需要以某种方式从整个目录树中过滤输入文件,根据 X
目录名进行过滤。
我会按照这些思路做一些事情:
ag 'search\sstring' `tree -dfi | ag '\/X.*'` | less
它有什么作用?
命令在:
`
被执行,然后通过 ag
.
搜索输出
- 过滤目录
tree -dfi
...打印您要搜索的整个路径(目录和文件)
-d
... 仅打印目录
-f
...打印每个文件的完整路径前缀
-i
... 跳过输出中的空格(尝试尽可能可处理)
ag '\/X.*'
... 在路径中搜索目录 /X
(后跟出现 0 次或多次的任何字符)- 使用任何将 select 目录的正则表达式想搜索。
- 在文件中搜索文本
ag 'search\sstring'
... 在过滤后的路径
中搜索 'search string' 字符串
less
是否有可搜索的输出(您可以根据需要重定向)
我的文件结构是这样的:
A
G (want to ignore)
H (want to ignore)
X (contains files I want to search)
B
G (want to ignore)
H (want to ignore)
X (contains files I want to search)
C (want to ignore)
X (contains files I want to search)
我只想 return 结果,其中 X 是 某处 目录路径。
看起来我可以使用 ag foo --ignore={G,H}
,但是要忽略的文件夹列表会非常(几乎令人望而却步)长。我通常想在所有文件夹中搜索,这样我就可以手动构建一个包含所有内容的全局忽略文件,并在我想忽略大部分内容时将其交换到位。
我发现此语法允许我在 A
和 B
的 X
文件夹中搜索,所以我很接近!
ag foo */X
所以问题本质上是:我怎样才能拥有任意数量的正斜杠(0、1 或更多)?
简单的ag
命令是不够的
我认为这不仅仅是通过 ag
(白银搜索者)命令。您需要以某种方式从整个目录树中过滤输入文件,根据 X
目录名进行过滤。
我会按照这些思路做一些事情:
ag 'search\sstring' `tree -dfi | ag '\/X.*'` | less
它有什么作用?
命令在:
`
被执行,然后通过 ag
.
- 过滤目录
tree -dfi
...打印您要搜索的整个路径(目录和文件)
-d
... 仅打印目录-f
...打印每个文件的完整路径前缀-i
... 跳过输出中的空格(尝试尽可能可处理)
ag '\/X.*'
... 在路径中搜索目录 /X
(后跟出现 0 次或多次的任何字符)- 使用任何将 select 目录的正则表达式想搜索。
- 在文件中搜索文本
ag 'search\sstring'
... 在过滤后的路径
less
是否有可搜索的输出(您可以根据需要重定向)