sod*_*ate 7 bash awk ubuntu-12.04
我正在编写一个shell脚本文件,我必须在其中打印文件的某些列.所以我尝试使用awk.列号在脚本中计算.Nprop是for循环中的变量,从1变为8.
avg=1+3*$nprop
awk -v a=$avg '{print $a " " $a+1 " " $a+2}' $filename5 >> neig5.dat
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下内容:
awk -v a=$avg '{print $a " " $(a+1) " " $(a+2) }' $filename5 >> neig5.dat
Run Code Online (Sandbox Code Playgroud)
这导致始终打印前三列.
avg=1+3*$nprop
Run Code Online (Sandbox Code Playgroud)
例如,如果是 4,则字面上的值将设置为$avg。您应该评估该表达式:1+3*4$prop
avg=$(( 1+3*$nprop ))
Run Code Online (Sandbox Code Playgroud)
并使用带括号的脚本版本awk。