使用 ack-grep 忽略 *.egg-info 目录
ignore *.egg-info directories with ack-grep
我注意到 ack-grep 不会忽略 python 在源代码旁边创建的 <module>.egg-info
目录。我希望我可以添加
--ignore-dir=*.egg-info
or
--ignore-file=ext:egg-info
作为一个包罗万象,无需将每个项目的 .egg-info 目录手动添加到 ~/.ackrc。
有没有一种方法可以做到这一点而不必手动添加所有这些?
您可以使用与指定类型时相同的过滤系统来指定 --ignore-dir
。使用 ack --dump
查看默认设置,它们应该会让您了解如何执行此操作。 (以及在 ack --man
处查看手册中的 "Specifying your own types")
所以你可以这样做:
ack --ignore-dir=match:[.]egginfo$ whatever
请注意,当您使用 match
时,它是 Perl 正则表达式,而不是 glob。这就是说"Ignore any directory that matches .egginfo
at the end of the name"。 .
是一个元字符,放在字符 class ([.]
) 中以去除其特殊含义。您也可以使用 \.
,但这样也会与 shell 混淆。
因此您可以将 --ignore-dir=match:[.]egginfo$
放入您的 ~/.ackrc 中,不再担心它。
...
对于我们这些不熟悉 Python 生态系统的人,您能否详细介绍一下 <module>.egg-info
目录是什么,它们是在何处以及如何创建的?它基本上是一个构建目录吗?我是 ack 的作者,这听起来像是默认忽略 ack 的好东西。
我注意到 ack-grep 不会忽略 python 在源代码旁边创建的 <module>.egg-info
目录。我希望我可以添加
--ignore-dir=*.egg-info
or
--ignore-file=ext:egg-info
作为一个包罗万象,无需将每个项目的 .egg-info 目录手动添加到 ~/.ackrc。
有没有一种方法可以做到这一点而不必手动添加所有这些?
您可以使用与指定类型时相同的过滤系统来指定 --ignore-dir
。使用 ack --dump
查看默认设置,它们应该会让您了解如何执行此操作。 (以及在 ack --man
处查看手册中的 "Specifying your own types")
所以你可以这样做:
ack --ignore-dir=match:[.]egginfo$ whatever
请注意,当您使用 match
时,它是 Perl 正则表达式,而不是 glob。这就是说"Ignore any directory that matches .egginfo
at the end of the name"。 .
是一个元字符,放在字符 class ([.]
) 中以去除其特殊含义。您也可以使用 \.
,但这样也会与 shell 混淆。
因此您可以将 --ignore-dir=match:[.]egginfo$
放入您的 ~/.ackrc 中,不再担心它。
...
对于我们这些不熟悉 Python 生态系统的人,您能否详细介绍一下 <module>.egg-info
目录是什么,它们是在何处以及如何创建的?它基本上是一个构建目录吗?我是 ack 的作者,这听起来像是默认忽略 ack 的好东西。