O valor do parâmetro não está sendo resolvido

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.

    
por user207412 27.12.2016 / 21:37

1 resposta

2

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 }'
    
por 27.12.2016 / 21:39