使用zgrep和awk从与模式匹配的文件名中检索特定数字

时间:2014-08-17 08:25:18

标签: bash unix awk grep

这个for循环怎么了?

for file in `zgrep -l 'REJECTED PACKS TOTALS:              [1-9]'`
do
    gzcat $file | grep 'REJECTED PACKS TOTALS:' | awk '{print $4}'  > /home/users/xyz/sample.txt
done

我想做的是:

在目录中有许多压缩格式的文件(例如abc.gz)。

但是我想要包含模式的文件' REJECTED PACKS TOTALS:[1-9]'。

具体而言,我对此类文件名的[1-9]部分感兴趣,这就是我使用awk 'print{print $4}'的原因。

但问题是我没有得到所需的输出。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

像这样运行你的循环:

for file in *.gz
do
    gzcat "$file" | awk '/REJECTED PACKS TOTALS:/{print $4}' >> /home/users/xyz/sample.txt
done