다음 명령을 사용하고 있는데 잘 작동합니다.
zcat abc.dat.gz | awk -F\| 'NF==102{print NR,$0}'
하지만 아래 스크립트에서 위 명령을 사용해도 temp_var2
해결되지 않습니다.
zcat "$1" | awk -F "$2" 'NF==$temp_var2{print NR,$0}'
여기에는 $1
스크립트 $2
실행 시 전달되는 매개변수와 temp_var2
그 안에서 생성한 매개변수가 숫자값으로 할당됩니다.
답변1
이는 변수가 작은따옴표 내에서 확장되지 않기 때문에 발생합니다. 스위치 awk
에는 해결 방법이 내장되어 있습니다 -v
. 이 시도:
zcat "$1" | awk -F "$2" -v var="$temp_var2" ' NF == var { print NR, $0 }'