0

ファイルからデータをプロットするgnuplotスクリプトを作成しようとしています(問題はありません)。ファイル名は別のファイルで指定されています(これには助けが必要です)。私は現在、次のものを持っています:

set terminal pngcairo
set output 'interpolation.png'

plot 'output.txt' u 2:3 w lines, \
     'data_1.txt' w points

これは期待どおりに機能します。ただし、output.txt値をdata_X.txt取得する (およびデータを補間する) データファイルを生成します。私のプログラムは からデータ ファイル名を読み取るstdinので、1 回の実行に必要なすべてのデータを含む入力ファイルがあります。この入力ファイルの最初の行は、その実行のデータ ファイルのファイル名です。

同じ入力ファイルからファイル名を取得する方法はありますか? どのように?

つまり、プロット スクリプトinterpolation.gpt、多数のデータ ファイル、および最初の行でいずれかのファイルの名前が付けられdata_X.txtた入力ファイルが与えられた場合、両方のファイルを手動で編集しなくても、 で指定されたデータ ファイルを使用できますか?input.txtdata_X.txtinterpolation.gptinput.txt

4

2 に答える 2

1

gnuplot 内からこれを行うこともできます。

datafile = system("head -1 output.txt")
plot 'output.txt' u 2:3 w lines, \
      datafile w points

逆引用符の置換も同様に機能したと思います:

datafile = "`head -1 output.txt`"
于 2013-04-10T12:00:46.623 に答える
0

最も簡単な方法は、別のスクリプトから gnuplot を呼び出すことです。

#!/bin/bash

datafile=$(head -1 output.txt)

gnuplot << EOF
set terminal ...
set output ...
plot 'output.txt' u 2:3 w lines, \
     '$datafile' w points
EOF
于 2013-04-09T12:09:16.457 に答える