Isso está acontecendo porque as variáveis não são expandidas entre aspas simples. awk
tem uma solução interna para isso na opção -v
. Tente isto:
zcat "$1" | awk -F "$2" -v var="$temp_var2" ' NF == var { print NR, $0 }'
Estou usando o comando abaixo e está funcionando bem:
zcat abc.dat.gz | awk -F\| 'NF==102{print NR,$0}'
mas quando estou usando o comando acima no script abaixo, então temp_var2
não está sendo resolvido.
zcat "$1" | awk -F "$2" 'NF==$temp_var2{print NR,$0}'
Aqui, $1
e $2
são parâmetros que são passados durante a execução do script e temp_var2
que estou criando dentro que está sendo atribuído como valor numérico.
Isso está acontecendo porque as variáveis não são expandidas entre aspas simples. awk
tem uma solução interna para isso na opção -v
. Tente isto:
zcat "$1" | awk -F "$2" -v var="$temp_var2" ' NF == var { print NR, $0 }'
Tags scripting shell-script