如何使用awk命令从.gz文件格式中提取输出数据

时间:2017-10-17 06:00:39

标签: linux csv awk gawk gz

我有一个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并输出输出?

3 个答案:

答案 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**选项在标准输出上写入输出;保留原始文件   不变。