AWK - 입력 레코드 대신 변수에서 열 선택

AWK - 입력 레코드 대신 변수에서 열 선택

복잡한 프로시저를 포함하는 AWK 프로그램 파일이 있다고 가정해 보겠습니다.예제.awk. 현재 레코드의 전체 행이 아닌 특정 열에 변수를 할당하려고 합니다.

#!/usr/bin/awk -f

BEGIN {...}
... {...}
...
END {
    ...
    var1 = ... # do something
    print "var1 ... " var1

    var2 = ⬛⬛⬛⬛⬛⬛
    print "var2 ... " var2
}

var1파일 입력과는 아무 관련이 없습니다 . 셸에서 다음 프로그램을 실행하세요.

awk -f ./example.awk ./text.txt
...
var1 ... I like chocolate cake
var2 ... chocolate

이 예에 표시된 대로 var2string은 세 번째 필드/열입니다. UNIX 쉘에서는 다음과 같을 수 있습니다.

var2=$(cut -d ' ' -f 3 <<< "$var1")

var2AWK에서 스크립트를 어떻게 작성하시겠습니까 ?

답변1

awk -v f=3 '
  END {
    var1 = "I like chocolate cake"
    n = split(var1, a)
    var2 = a[f]
    print var1
    print var2
  }
' /dev/null
I like chocolate cake
chocolate

관련 정보