我有一个File.gz格式的文件,内容如下。
'0' 0 0 0 0 0 'Allowed' 'Allowed' '0' 0 '' 'E1' 3 '1' '' '000000' '00000000' '0' '0' '150' '0' '323560' '600' '1' '0' '0' '0' 150809303 'LC9' 1 1506147442 150613878 4 0 0 0 ''
如何使用awk命令从.gz文件格式中提取输出数据?就像我想输出excel csv格式的字段7,8,11,12,22,27的文件内容,其中字段7 =允许且字段12 = E1。
如何在linux中执行awk并输出输出?
答案 0 :(得分:2)
awk
无法读取gz文件。但你可以做到
zcat file.gz | awk -v OFS=, '{print $7, $8 ... etc}'
对于引用值测试,您可以
... | awk -v OFS=, -v v7="'Allowed'" -v v12="'E1'" '$7==v7 && $12==v12 {print $7, ... etc}'
答案 1 :(得分:0)
awk '{OFS=","}{print $7,$8,$11,$12,$22,$27}' filename
输出:
'Allowed','Allowed','','E1','323560','0'
答案 2 :(得分:0)
我希望您正在寻找单行代码。
尝试下面的内容,
gzip -dc File.gz|awk '{if ($7 == "allowed" && $12 == "E1") print $7","$8","$11","$12","$22","$27}'
- gzip -dc
的解释:
**d**
选项解压缩文件
**c**
选项在标准输出上写入输出;保留原始文件 不变。