如何在gnuplot中设置awk变量?

时间:2014-03-28 05:15:22

标签: bash variables awk gnuplot batch-processing

现在我可以像这样批量绘图

filename(n) = sprintf("x0%.3fgammamax.txt", n)
set term png size 800,600 enhanced
do for [ii=0:10]{
tempi=(ii+0.0)
outfile = sprintf('x0%.3fgammamax-pm3d.png',tempi)
set output outfile
splot filename(tempi) notitle with pm3d
}

但是,现在我需要在使用awk绘图之前处理数据。名为addblanks.awk的文件的内容是

/^[[:blank:]]*#/ {next} # ignore comments (lines starting with #)
NF < 3 {next} # ignore lines which don't have at least 3 columns
$1 != prev {printf "\n"; prev=$1} # print blank line
{print} # print the line

如果我不需要动态文件名,我使用命令:

splot "<awk -f addblanks.awk data.txt"  notitle with pm3d

但是,我现在还需要使用awk的动态文件名。结果应该是:

 splot "<awk -f addblanks.awk filename(tempi)"  notitle with pm3d

如何让它发挥作用?

2 个答案:

答案 0 :(得分:0)

您只需要使用.

连接两个字符串
splot "<awk -f addblanks.awk ".filename(tempi)  notitle with pm3d

答案 1 :(得分:-1)

这可能有效:

splot "<awk -v TEMPI="$tempi" -f addblanks.awk filename(TEMPI)"  notitle with pm3d

我用大写字母定义了awk变量以防止混淆。 tempi="$tempi"也应该有用。