Pau*_*aul 15 macos terminal search grep
我试图在文件夹中找到一行代码并使用终端。我使用这个命令,我认为它应该可以工作:
MacBook-Pro:myWordpress myId$ grep "<?php get_template_part('loop', 'archives'); ?>" -R
Run Code Online (Sandbox Code Playgroud)
我正在检查的文件夹被称为“myWordpress”。但我明白了:
grep: warning: recursive search of stdin
Run Code Online (Sandbox Code Playgroud)
我不怎么使用终端,所以我不确定如何做我想做的事。任何帮助表示赞赏。谢谢
大卫
juz*_*aai 24
您还必须指定目录作为最后一个参数:
grep -r -F "string to search" /path/to/dir
Run Code Online (Sandbox Code Playgroud)
或者如果你想在当前目录中搜索,写.为目标目录:
grep -r -F "string to search" .
Run Code Online (Sandbox Code Playgroud)
如果不指定目录, grep将尝试在标准输入中搜索,但递归搜索在那里没有意义 - 这就是您收到警告的原因。
的联机帮助页grep说:
并非所有 grep 实现都支持 -r,在支持的实现中,符号链接的行为可能有所不同。
在这种情况下,您可以尝试不同的方法,使用find和xargs:
find /path/to/dir -name '*.*' -print0 | xargs -0r grep -F "string to search"
Run Code Online (Sandbox Code Playgroud)
同样,如果您想在当前目录中搜索,您可以将其写入.目录参数 (after find)。
编辑:正如@EdMorton 指出的,如果您想搜索简单文本而不是正则表达式,-F则需要该选项grep。我将它添加到我上面的示例中,因为您似乎正在尝试搜索可能包含特殊字符的 PHP 片段,这会导致在 regexp 模式下产生不同的输出。
对于 macOS,这将非常有用和简单,而且它还会突出显示文本的搜索结果匹配!
brew install ack
ack "text"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13060 次 |
| 最近记录: |