【问题标题】:Linux- command line - How to grep smt of a hidden file inside a directory of all directoriesLinux-命令行-如何在所有目录的目录中grep隐藏文件的smt
【发布时间】:2020-04-02 15:10:06
【问题描述】:

我在一个目录中,假设有 100 个目录(仅此而已),每个目录都有另外 50 个目录(仅此而已),并且每个目录(50 个)都有一些隐藏文件。隐藏文件的所有 50 个目录都具有相同的名称。

如何 grep 隐藏文件中的内容?

例子:

grep "Killed" .log 

(.log 文件位于 50 个目录中的每个目录中;但我位于 100 个目录的根目录中)

【问题讨论】:

    标签: unix command-line grep


    【解决方案1】:

    使用 GNU grep:

    grep -r --include=.log 'Killed'
    

    这会在您的当前目录中启动递归 grep,其中仅包括与名称 .log 匹配的文件。

    【讨论】:

      【解决方案2】:

      这个问题有点模棱两可。您是否有多个“隐藏”文件,并且只想在具有特定名称的文件中搜索字符串,或者您想在所有文件中搜索字符串?无论哪种方式,它都很简单:

      find /root/dir -type f -exec grep pattern {} \;  # Search all files
      find /root/dir -type f -name '*.log' -exec grep pattern {} \; # Search only in files with names matching '*.log'
      

      您通常希望在调用grep 时添加-H(或指定/dev/null 作为第二个参数)以查看文件名。

      【讨论】:

      • 您可能还想将-mindepth 3 -maxdepth 3 添加到find 以进一步限制搜索(假设OP 的目录树可能超出他所描述的范围)。
      猜你喜欢
      • 2015-06-30
      • 2023-04-03
      • 2010-10-20
      • 2021-08-26
      • 2013-01-11
      • 2014-12-13
      • 1970-01-01
      • 2012-05-18
      相关资源
      最近更新 更多