打开所有包含特定文本的文件

mre*_*req 7 command-line search

我正在寻找一种终端方式。打开/foo/bar包含字符串的所有文件foobar。如何?

roa*_*dmr 14

你没有说你想如何打开它们:)

一种方法是使用 grep 递归查找文件中的字符串 (-r)。使用 -l 要求 grep 仅输出匹配文件的文件名。这将每行输出一个文件名,使用 xargs 为您的编辑器构建合适的命令行。

grep -r -l foobar /foo/bar/ | xargs vim
Run Code Online (Sandbox Code Playgroud)

这也适用于 gedit;只需将 vim 更改为 gedit。

您也可以为此使用 find ,但恕我直言,它更复杂:

find /foo/bar -type -f -exec grep -l foobar {} \;  | xargs vim
Run Code Online (Sandbox Code Playgroud)