我正在编写一个shell脚本文件,其中必须打印文件的某些列。所以我试着用锥子。在脚本中计算列号。Nprop是for循环中的一个变量,从1变为8。

avg=1+3*$nprop
awk -v a=$avg '{print $a " " $a+1 " " $a+2}' $filename5 >> neig5.dat

我也试过以下方法:
awk -v a=$avg '{print $a " " $(a+1) " " $(a+2) }' $filename5 >> neig5.dat

这将导致始终打印前三列。

最佳答案

avg=1+3*$nprop

例如,如果$avg是4,这将按字面意义将1+3*4设置为$prop。您应该计算该表达式:
avg=$(( 1+3*$nprop ))

并使用带括号的awk脚本版本。

关于bash - 从bash将变量传递到awk,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16340775/

10-13 05:30