grep命令处理的文件的百分比或数量

时间:2016-11-12 20:54:09

标签: linux awk grep zgrep

例如,如果我使用来自1000个文件的GREP命令搜索/检查KeyWord / String;然后是否有任何选项/方式来查看/显示GREP命令处理的文件的百分比或数量......?。

我想知道完成搜索过程需要多长时间。

请帮忙

1 个答案:

答案 0 :(得分:1)

尝试awk。这将打印一条消息,提示正在处理的文件编号,然后是与该模式匹配的行。我选择这里的模式是字符p,因为这对我的测试来说很容易。您可以替换任何有效的正则表达式。

awk -v PAT="p" 'FNR == 1 { n++; printf "Processing %d of %d files\n", n, ARGC - 1 >> "/dev/stderr"} FILENAME ~ /.gz$/ {print "Skipping gz file: ", FILENAME; nextfile} /PAT/'

<强>解释

awk -v PAT="p" '
    FNR == 1 {                                # Every first line of the file
       n++;                                   # Counter for file being processed
       printf "Processing %d of %d files\n",  # Print message
          n,                                  # file number
          ARGC - 1                            # Number of files on CLI
          >> "/dev/stderr"                    # Redirect to stderr
    }
    FILENAME ~ /.gz$/ {                       # Skip gunzip files
       print "Skipping gz file: ", FILENAME; 
       nextfile                               # move to next file
    }
    /PAT/                                     # Pattern to print
'

<强>更新

更新了代码,以便在处理时跳过gunzip(.gz)文件。