0
如果我正在使用来自1000个文件的GREP命令搜索/检查KeyWord/String;例如,那么是否有任何选项/方法可以查看/显示由GREP命令处理的文件的百分比或数量...?。通过grep命令处理的文件的百分比或数量
只是我想知道多久才能完成搜索过程。
请帮忙
如果我正在使用来自1000个文件的GREP命令搜索/检查KeyWord/String;例如,那么是否有任何选项/方法可以查看/显示由GREP命令处理的文件的百分比或数量...?。通过grep命令处理的文件的百分比或数量
只是我想知道多久才能完成搜索过程。
请帮忙
试试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解(。广州)文件。
将输出与消息混合并不是一个好习惯,您可能希望将这些输出重定向到stderr。 – karakfa
谢谢@JayRajput ...它确实有点我需要或意思。但除了** printf **输出之外,我还获得了一些**垃圾**值。其实在我的情况下,我不得不搜索的文件是**。gz **文件;所以这就是为什么我得到那些不需要的垃圾价值......?任何解决方案,以避免这... ...? – Krishnan
我已更新代码以跳过gunzip文件 –