2012-04-06 3 views
-1

가 나는 파일이 있습니다. 이 명령이 작동하지 않습니다.

$ awk '{if($3=="DD") split($0, a, RS); print a[1]}' file 

BB CC DD AA 
BB CC DD AA 
BB CC DD AA 

감사합니다.

편집 :

내가 패턴 'DD'에서 라인의 배열에 쓰고 싶었다.

이들은

좋은 솔루션입니다 :
awk '{if($3=="DD") {split($0, a, RS); print a[1];}}' file 
awk '$3=="DD"{split($0, a, RS); print a[1];}' file 

당신의 도움에 감사드립니다.

+0

목표가 무엇인지 이해하기 어렵습니다. –

답변

1

$3 == "DD"과 상관없이 결과를 인쇄하고 있습니다. 원하는 결과가 아닐 수도 있습니다. 또한 샘플 출력, 그래서 여기에 설정되어 있지 RS로 분할하고

는 비교 :

awk '{if($3=="DD") {split($0, a); print a[1];}}' file 

FS 대신 (따라서 인쇄 위의 단지 BB)로 분할한다.

+0

'DD'패턴의 줄 배열에 쓰기를 원했습니다. 다음은 좋은 해결책입니다. awk '{if ($ 3 == "DD") {split ($ 0, a, RS); print [1];}} 'file' awk $ 3 == "DD"{split ($ 0, a, RS); a [1];} 'file'인쇄 도움 주셔서 감사합니다. – Tedee12345

1

나는 당신이 원하는 무엇에 완전히 명확하지 않다,하지만이 시도 :

awk '$3 == "DD" { print $1 }' file 

당신이하고있는 수동 분할은 AWK에서 불필요한입니다.

+0

위의 내용이 실제로는'RS'가 설정된 더 큰 awk 스크립트에서 손질 된 것으로 추측됩니다.'split'-ing 후에 추가 처리를 수행해야하지만, 실제로 원래의 질문에는 없습니다. . :-) – torek

+0

'DD'패턴의 줄 배열에 쓰기를 원했습니다. 다음은 좋은 해결책입니다. awk '{if ($ 3 == "DD") {split ($ 0, a, RS); print [1];}} 'file' awk $ 3 == "DD"{split ($ 0, a, RS); a [1];} 'file'인쇄 도움 주셔서 감사합니다. – Tedee12345

+0

이것은 관용적 인 방법입니다. 의심의 여지가 없습니다 – C2H5OH

관련 문제