当我用来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
或者使用sed
orawk
代替grep
:
awk '/regexp/' ./*.txt
(扩展正则表达式,如 with grep -E
)。
sed '/regexp/!d/' ./*.txt
(基本正则表达式如 with grep
without -E
。许多sed
实现现在还支持-E
扩展正则表达式的选项)。
答案2
通过git grep
,使用-h
选项来隐藏文件名:
git grep -h <pattern>
请注意,该选项--no-filename
不适用于 git grep。