내가 입력 할 때 :
echo "foo bar" | gawk -v var="content" '{print $var}'
출력이 content
. 왜 그렇 foo bar
습니까?
변수는에서 var
가 아니라 $var
에서 와 같이 이름으로 참조됩니다 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}'
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다