2016-11-12 71 views
0

如果我正在使用来自1000个文件的GREP命令搜索/检查KeyWord/String;例如,那么是否有任何选项/方法可以查看/显示由GREP命令处理的文件的百分比或数量...?。通过grep命令处理的文件的百分比或数量

只是我想知道多久才能完成搜索过程。

请帮忙

回答

0

试试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 
' 

UPDATE

更新了代码处理时跳过gunzip解(。广州)文件。

+0

将输出与消息混合并不是一个好习惯,您可能希望将这些输出重定向到stderr。 – karakfa

+0

谢谢@JayRajput ...它确实有点我需要或意思。但除了** printf **输出之外,我还获得了一些**垃圾**值。其实在我的情况下,我不得不搜索的文件是**。gz **文件;所以这就是为什么我得到那些不需要的垃圾价值......?任何解决方案,以避免这... ...? – Krishnan

+0

我已更新代码以跳过gunzip文件 –