打印GunZip FileName和选定的行 - 连续:

时间:2014-06-20 07:45:52

标签: unix awk

想要从文件名中的所有文件中打印前2行。 所有都是* .gz扩展名文件。在该目录中有大约100个文件。

sample_jan.csv.gz

10,Jan,100
30,Jan,300
50,Jan,500

sample_feb.csv.gz

10,Feb,200
20,Feb,400
40,Feb,800
60,Feb,1200

预期产出:

Filename:sample_jan.csv.gz
10,Jan,100
30,Jan,300

Filename:sample_feb.csv.gz
10,Feb,200
20,Feb,400

尝试下面的命令,其中Filename显示为空白

zcat sample_jan.csv.gz | awk 'FNR==1{print "Filename:" FILENAME} FNR<3' > Output.txt

Filename:-
10,Jan,100
30,Jan,300

尝试下面的命令,其中Filename出现错误

awk 'FNR==1{print "Filename:" FILENAME} FNR<3' <(gzip -dc sample_jan.csv.gz) > Output.txt

Filename:/dev/fd/63
10,Jan,100
30,Jan,300

寻找你的建议,没有perl&amp;蟒。

1 个答案:

答案 0 :(得分:1)

你可以使用这个单行,

for file in *.gz; do echo "Filename: $file"; zcat "$file" | head -2 ; done