awk

두 필드 구분 기호 (콜론 및 공백) 중 하나가 공백 일 때 awk 명령에서 두 필드 구분 기호를 어떻게 지정할 수 있습니까? awk에 포함 된 if-else 조건을 사용하여 수행 할 수 있다고 생각하지만 정확한 명령은 확실하지 않습니다.

샘플 파일은 다음과 같습니다.

cat test.txt Swapnil Engineer 20000 Avinash:Doctor:30000 Dattu GovntJob 50000 Amol:Master:10000 

두 번째 열 ($ 2)을 인쇄하고 싶습니다. 예상 출력은 다음과 같습니다.

Engineer Doctor GovntJob Master 

필드 구분자로 공백과 콜론을 모두 넣으려고 할 때 구문 오류로 인해 실패했습니다.

awk -F[ :] "{print $2}" test.txt awk: cmd. line:1: :] awk: cmd. line:1: ^ syntax error 

두 개의 필드 구분 기호를 사용하고 awk 기능을 활용하려면 어떻게해야합니까?

댓글

  • Yeti '의 대답은 셸이 인용되지 않은 공백으로 분할되어 awk에 대한 인수 목록을 생성하므로 -F[ :] (하나 arg) -F[:]가 있습니다. 이 차트 는 매우 편리합니다 (작은 따옴표 / 큰 따옴표에 대한 세로 화살표 참고).
  • ArielCo에게 감사합니다. 감사합니다!

답변

올바른 길을 가고 있습니다.
:

awk -F"[ :]" "{print $2}" test.txt Engineer Doctor GovntJob Master 

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다