【问题标题】:UNIX, find string in all files in sub directory with line numbers and filenamesUNIX,在子目录中的所有文件中查找带有行号和文件名的字符串
【发布时间】:2019-03-01 06:29:42
【问题描述】:

我正在尝试在 UNIX 中进行递归文本字符串搜索,并让结果显示文件中出现文本的文件名和行号。根据这里的一些其他答案,我有以下代码,但它只显示行号而不是文件名:

find /my/directory -type f -exec grep -ni "text to search" {} \;

让这个命令忽略除 .LOG 文件之外的所有内容也很棒。对于它的价值,我的系统不支持 grep -r 。谢谢!

【问题讨论】:

  • 那是因为默认情况下 grep 不会为单个输入添加文件名。如果您的 find 版本支持,请尝试使用 + 而不是 \;。如果您的 find 版本支持,请使用 -H 和 grep你的 grep 版本支持它
  • man grep 告诉你关于打印文件名的什么?

标签: unix recursion grep find


【解决方案1】:

怎么样:

find /my/directory -type f -name "*.LOG" -print0 | xargs -0 grep -Hni "text to find"

【讨论】:

    【解决方案2】:

    当您的findgrep不支持高级选项时,请尝试添加/dev/null

    find /my/directory -type f -exec grep -ni "text to search" {} /dev/null \;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-10
      • 2013-02-13
      • 2013-03-20
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多