参数值未得到解析

参数值未得到解析

我正在使用下面的命令并且它工作正常:

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

相关内容