【问题标题】:how to display file name during grep如何在grep期间显示文件名
【发布时间】:2015-11-21 04:58:15
【问题描述】:

这是我当前的代码,我也更喜欢显示匹配的文件名(如果文件的内容匹配 grep),任何解决方案都值得赞赏。

for file in *.py;
do grep -n --color 'main' $file;
done

顺便说一句,我使用的是 Linux/OS X。

提前致谢, 林

【问题讨论】:

标签: linux macos grep


【解决方案1】:

我确定这里之前已经出现过,但您只需要给它一个第二个文件名

for file in *.py; 
do grep -n --color 'main' $file /dev/null;
done

【讨论】:

  • 您的解决方案对我有用,并想了解更多为什么添加 /dev/null 有效以及“给它第二个文件名”是什么意思?
  • 用 grep,你可以给它多个文件一次搜索。例如,“grep filea fileb filec”。当您这样做时,输出将告诉您哪个文件包含匹配项。在这种情况下,我们已经“欺骗”了它。 /dev/null 永远不会包含匹配项,但是因为我们给 grep 提供了两个文件名,它会告诉你哪个文件匹配。
  • 智能。你的意思是如果我们只对一个文件使用 grep,grep 永远不会显示文件名?
【解决方案2】:

如果您使用的是 GNU grep,即使只有一个文件参数,您也可以使用 -H--with-filename 选项强制它显示文件名。

for file in *.py; do
    grep -H -n --color 'main' $file
done

Linux 和 OS X 都使用 GNU grep,因此它应该可以在这两种环境中工作。

【讨论】:

    猜你喜欢
    • 2011-10-02
    • 2015-01-30
    • 2013-01-15
    • 2012-12-02
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多