내가 입력할 때:
echo "foo bar" | gawk -v var="content" '{print $var}'
나는 결과 가 content
.foo bar
답변1
var
변수는 in 이 아닌 $var
in 과 같은 이름으로 참조됩니다 awk
. 다음을$n
참조한다n
대지: $1
첫 번째 필드, $2
두 번째... 또는 전체 레코드 n
== 0( $0
전체 레코드입니다).
반드시 문자 그대로의 숫자일 필요는 없습니다. $(1+1)
또는 를 사용할 수 있습니다 $variable
. variable
포함된 경우 첫 번째 필드가 됩니다 1
. 일반적으로 마지막 필드( 필드 수를 포함하는 특수 변수) $variable
가 사용됩니다 .$NF
NF
귀하의 예와 같이 변수에 숫자가 포함되어 있지 않으면숫자가 아님0으로 이해됩니다.
따라서 는 var="content"; print $var
와 동일 var=0; print $var
하므로 는 와 동일합니다 print $0
. 즉, 전체 레코드를 인쇄합니다.
여기서 원하는 것은 다음과 같습니다.
echo "foo bar" | gawk -v var="content" '{print var}'