2014-06-20 44 views
1

想要打印位於目錄中的所有文件的前2行以及文件名。 全部是* .gz擴展名文件。該目錄中有大約100個文件。打印GunZip文件名和選定的行 - 正在刪除:

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 &蟒蛇。

回答

1

您可以使用此一班輪,

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

非常感謝坐在! – VNA