2017-10-17 100 views
0

我有一個File.gz格式的文件,其內容如下所示。如何使用awk命令從.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文件格式中提取輸出數據?就像我想輸出的文件內容只適用於字段7,8,11,12,22,27以excel csv格式,其中字段7 =允許且字段12 = E1。

如何執行awk並在linux中輸出輸出結果?

+0

你能解壓縮文件並調用'AWK '{打印$ 7 $ $ 8 $ 11 $ 12 $ 22 27日}' extracted_file'? –

+0

我無法gzip該文件。我希望顯示字段7,8,11,12,22,27基於只有字段7 =允許和字段= 12的條件。如果字段7不等於允許和提交= 12,我不想顯示它。 – snowman0805

回答

0
awk '{OFS=","}{print $7,$8,$11,$12,$22,$27}' filename 

輸出:

'Allowed','Allowed','','E1','323560','0' 
0

我希望你正在尋找一個班輪代碼。

嘗試以下,

gzip -dc File.gz|awk '{if ($7 == "allowed" && $12 == "E1") print $7","$8","$11","$12","$22","$27}' 

解釋 - gzip -dc

**d**選項將該文件解壓縮到標準輸出

**c**選項寫入輸出;保留原始文件 不變。

+0

嗨,它能夠顯示您的命令輸出基地。但我想顯示的基礎上只有字段7 =允許和字段= 12的條件。如果字段7不等於允許和提交= 12,我不想顯示它。還有如何將它輸出到Excel中的格式或TXT格式? – snowman0805

+0

您可以使用awk中的條件如下 'echo $(gzip -dc File.gz)| awk'{if($ 7 ==「allowed」&& $ 12 ==「E1」)print $ 7「,」$ 8「, 「$ 11」,「$ 12」,「$ 22」,「$ 27}」 –

+0

我有多條記錄?好像只是顯示記錄的第一行而已?輸入將是另一行記錄。 '0'0 0 0 0 0'允許''允許''0'0'''E2'3'1''''000000''00000000''0''0''150''0''323560' '600''1''0''0''0'150809303'LC9'1 1506147442 150613878 4 0 0 0'' – snowman0805

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}' 
相關問題