【问题标题】:To print GunZip FileName and selected rows -Continuation :要打印 GunZip FileName 和选定的行 -Continuation :
【发布时间】:2014-06-20 15:51:09
【问题描述】:

想要打印目录中所有文件的前 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

在文件名出现空白的地方尝试了下面的命令

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

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

在文件名出现错误的地方尝试了以下命令

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 和 python。

【问题讨论】:

    标签: unix awk


    【解决方案1】:

    你可以用这个单线,

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

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 2014-12-22
      • 1970-01-01
      相关资源
      最近更新 更多