매개변수 값이 구문 분석되지 않음

매개변수 값이 구문 분석되지 않음

다음 명령을 사용하고 있는데 잘 작동합니다.

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 }'

관련 정보