想要从文件名中的所有文件中打印前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;蟒。
答案 0 :(得分:1)
你可以使用这个单行,
for file in *.gz; do echo "Filename: $file"; zcat "$file" | head -2 ; done