2017-10-17 4 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에 대해서만 파일 컨텐트를 출력하고 싶습니다. 필드 7 = 허용되고 필드 12 = E1 인 Excel CSV 형식입니다.

awk를 실행하고 Linux에서 출력을 인쇄하는 방법은 무엇입니까?

+0

이 파일을 압축을 해제 할 수 있습니다와'AWK 전화 extracted_file' '{$ 8 $ (11) $ (12) $ $ 22 (27) $ 7 인쇄}'? –

+0

파일을 gzip 할 수 없습니다. 나는 field 7 = 11과 12,22,27의 field를 field 7 = allowed과 field = 12에서만 적용하고 싶다. 필드 7이 allowed과 filed = 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이 allowed과 filed = 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' '' '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}' 
관련 문제