awk의 두 필드 구분 기호(콜론 및 공백)

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 기능을 활용할 수 있습니까?

답변1

당신은 올바른 길을 가고 있습니다!
주위에 누락된 따옴표를 추가하기만 하면 됩니다 [ :].

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

관련 정보