获取 `grep` 不输出文件名

获取 `grep` 不输出文件名

当我用来grep -o搜索多个文件时,它会输出带有文件名前缀的每个结果。我怎样才能阻止这个前缀?我想要没有文件名的结果。

答案1

grep通过(也介绍过的-o)或兼容的GNU 实现,您可以使用该-h选项。

-h, --no-filename
          Suppress the prefixing of file names on  output.   This  is  the
          default  when there is only one file (or only standard input) to
          search.

对于其他实现,您始终可以将文件与cat输出grep连接起来:

cat ./*.txt | grep regexp

或者使用sedorawk代替grep

awk '/regexp/' ./*.txt

(扩展正则表达式,如 with grep -E)。

sed '/regexp/!d/' ./*.txt

(基本正则表达式如 with grepwithout -E。许多sed实现现在还支持-E扩展正则表达式的选项)。

答案2

通过git grep,使用-h选项来隐藏文件名:

git grep -h <pattern>

请注意,该选项--no-filename不适用于 git grep。

相关内容