我正在使用 ack 来搜索字符串。当我在没有文件参数的情况下运行它时,我得到行号:
$> ack function
themes/README.txt
7:Drupal's sub-theme functionality to ensure easy maintenance and upgrades.
sites/default/default.services.yml
48: # - The dump() function can be used in Twig templates to output information
...
Run Code Online (Sandbox Code Playgroud)
但是当我尝试指定一个文件时,我没有得到行号。
$> ack function themes/README.txt
Drupal's sub-theme functionality to ensure easy maintenance and upgrades.
Run Code Online (Sandbox Code Playgroud)
我在谷歌上搜索了一些开关,但没有找到结果。如何获得确认以显示单个文件结果的行号?
cuo*_*glm 22
当您不提供任何文件时,ack
将搜索当前目录和子目录中的所有文件。如果文件包含匹配模式,则ack
打印该文件名、行号和匹配模式的行。
此行为不适用于一个文件(请参阅ack 文档,搜索-H
选项)。
由于 whenack
没有-n
选项 line grep
,它将打印与其相对行号匹配的 line ,因此您有两种选择来解决此问题。
强制ack
打印文件名-H
:
ack -H pattern file
Run Code Online (Sandbox Code Playgroud)
或/dev/null
作为第二个文件传递:
ack pattern file /dev/null
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用选项--with-filename
:
ack --with-filename 'function' themes/README.txt
Run Code Online (Sandbox Code Playgroud)
应该有一个选项。但是,如果没有,您可以ack
通过/dev/null
在命令行上传递一个额外的内容,让您误以为有两个文件要搜索:
ack function themes/README.txt /dev/null
Run Code Online (Sandbox Code Playgroud)
附带说明一下,grep(1)
即使您正在搜索单个文件,也可以使用相同的技巧来显示文件名:
grep function themes/README.txt /dev/null
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2968 次 |
最近记录: |