确认通过 .htaccess 或其他点文件进行搜索

发布于 2024-10-13 16:23:24 字数 219 浏览 2 评论 0原文

有没有办法让 ack 搜索文件名以 . 开头的文件(例如 .htaccess),而无需求助于 --all- -无限制选项?

我尝试将以下内容添加到我的 ~/.ackrc 文件中,但无济于事:

--type-set=apache=.htaccess

Is there any way to get ack to search through a file whose filename starts with a . (e.g. .htaccess), without resorting to the --all or --unrestricted options?

I've tried adding the following to my ~/.ackrc file to no avail:

--type-set=apache=.htaccess

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怎樣才叫好 2024-10-20 16:23:25

看起来 ack 无法识别全是扩展名的文件名;也就是说,当您指定“.htaccess”扩展名时,ack 只会查找该扩展名之前至少有一个字符的文件。

要解决此问题,您可以将 -u/--unrestricted-G regex 标志结合使用(将搜索限制为名称与正则表达式匹配的文件)。例如:

$ ack -u -G '\.htaccess' pattern

It would appear that ack doesn't recognize a filename that's all extension; that is, when you specify an extension of ".htaccess", ack only looks for files with at least one character before that extension.

To get around this, you can use -u/--unrestricted in combination with the -G regex flag (to restrict the search to files whose names match a regex). For example:

$ ack -u -G '\.htaccess' pattern
友欢 2024-10-20 16:23:25

更新了 @Sean 对 Ack 2 的答案

,因为他们删除了 @Sean 使用的两个标志

ack 2 发行说明 说:

-G 选项已被删除。命令行上的两种模式是
模糊的。在此命令行中:

ack1 -G 文件模式 -i -w 搜索模式

-i 和 -w 修改哪种模式?现在,有了 ack 2.0,您可以使用
新的 -x 将文件名从一次 ack 调用传输到另一次调用。

ack2 -g -i 文件模式 | ack2 -x -w 搜索模式

并且不再需要 -u(无限制)标志。所以你想要的是:

ack -g "\.htaccess" | ack -x pattern

或者,就此而言,只需使用 find 生成文件列表(对于在点文件夹中查找文件特别有用):

find **/.hidden/complex-path/* | ack -x pattern

Updated @Sean's answer for Ack 2

since they removed the two flags that @Sean used

ack 2 release notes say:

The -G option has been removed. Two patterns on the command line was
ambiguous. In this command line:

ack1 -G filepattern -i -w searchpattern

which pattern does -i and -w modify? Now, with ack 2.0, you can use
the new -x to pipe filenames from one invocation of ack into another.

ack2 -g -i filepattern | ack2 -x -w searchpattern

and the -u (unrestricted) flag is not needed any more. So what you want is:

ack -g "\.htaccess" | ack -x pattern

Or, for that matter, just use find to generate the file list (especially useful to find a file in a dotfolder):

find **/.hidden/complex-path/* | ack -x pattern
清晰传感 2024-10-20 16:23:25

你不能在 ack 1.x 中做到这一点。 ack 2.0 将有更灵活的指定文件的方式。

You can't do it in ack 1.x. ack 2.0 will have more flexible ways of specifying files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文