我正在使用下面的命令并且它工作正常:
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 }'