私はこれをいくつかやりました。しかし、あなたは< < EOFとEOFタグの中にbashで書くことはできないので、EOFは使わないでください。ファイルの名前によっては、別の方法で行うことができます。
a)ファイル名がループ可能な場合(1のソート。dat 2.dat 3.datなど)
#!/bin/bash
for((i=0;i<1;i++)) do
echo "plot '-' u 1:2"
for((j=1;j<=3;j++)) do
cat $i.dat
echo "e"
done
done | gnuplot -persist
最初のループはgnuplotにすべてを供給するためのバッファの一種です。
b)ファイル名がループ可能でない場合は(ñlasjkd.datajñljd.movañlsjkd.gifなど)、まずそれらを新しいフォルダに移動する必要があります。そして、あなたには、いくつかのより多くをしたい場合は、それがある)
#!/bin/bash
ffiles=$(ls | xargs) # a list of the folder's files
# Use the list to pipe all the data to gnuplot using cat
for((i=0;i<1;i++)) do
echo "plot '-' u 1:2 w lp";
cat $ffiles;
echo "e";
done | gnuplot -persist
Cの操作を行います。ただ一つのファイルに分離したファイルの情報を保持するために...しかし、gnuplotは読み込む場合のgnuplotのデータシート生き使用「インデックス」(maintaning別のデータシートである2つの黒いラインの推測)
#!/bin/bash
ffiles=$(ls|xargs)
ls $ffiles > ffiles.list # A file with the folder's files
while read line
do
cat $line;
echo -e; echo -e;
done <ffiles.list> alldata.dat
# ^-feeding ffiles.list to the while loop
# and writing the file alldata.dat
今あなたはgnuplotに行くとアクセスも1つのデータシートに
plot 'alldata.dat' index 1 u 1:2
を、あなたがリスト「ffilesに登場する最初のファイルが表示されますすることができます。リスト"。複数を見たいと思ったら、4
plot 'alldata.dat' index 1:4 u 1:2
トリッキーですが簡単です。
魅力的な作品...ありがとう! 毎回違うファイルでこのgnuplotをループして呼び出すスクリプトを追加しました。 – user431336