我有一个包含179个制表符分隔的文本文件的文件夹。它们都具有相同的格式。这是示例数据的链接:
http://www.mvabl.com/public/sample_data.txt
(该样本有5头,5行我要的数据,以及所有尾随数据的我不想要的。)
我想完全剥离前四行标题行,然后将第五行用作合并数据的单个文件中所有行的标题-不包含尾随数据。
我还想附加两个字段:一个文件名字段,一个用于Prelim 4的值。因此输出看起来像:
Filename Curr Storefront Name Identifier M-Type Quantity Net Amt Net Amt Total Code Title Item A-Type B-Type Vendor_ID Offline Indicator company donotuse
file1 ZAR ZA 44056971 Family Monthly PAID 1 .061038 .061038 US3E40400141 subtitle1 person 1 1 US3E40400141 1 BlueMelon
file2 ZAR ZA 44056975 Family Monthly PAID 1 .061038 .061038 US3E40400142 subtitle2 person2 1 1 US3E40400142 1 BlueMelon
file3 ZAR ZA 44057007 Family Monthly PAID 1 .061038 .061038 US3E40400144 subtitle3 person3 1 1 US3E40400144 1 BlueMelon
...
file179 ZAR ZA 44057330 Family Monthly PAID 1 .061038 .061038 US3E40400107 subtitle5 person5 1 1 US3E40400107 1 BlueMelon
我是shell脚本编写的完整专家。从字面上看是1周的经验。
要添加第一个字段,我已经走到了这一步,并被卡住了:
gawk 'NR==5;FNR>5 {print FILENAME,"\t",$0} /Row/ {f=0; nextfile} f' *.txt > result.txt
我不知道如何添加第二个字段(Prelim Data 4的值)。
有什么帮助吗?谢谢!
由于您似乎有GNU awk,该怎么办
gawk '
/^Row Count/ {nextfile}
NR == 5 {$0 = "Filename" OFS $0; print}
FNR > 5 {$0 = FILENAME OFS $0; print}
' OFS='\t' *.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句