2

検索コマンドの出力によると、gnuplot で for ループを使用して複数のファイルをプロットしています。plot コマンドは、フル パスを含むファイル名全体をキーに入れます。ディレクトリのパスを削除して、ファイル名のみを配置したいと思います。それは可能ですか?

#!/usr/bin/gnuplot -persist

set terminal pdfcairo enhanced size 10in,7in

wmax_List = "`echo $(ls E0025/4D/Re2000/NS.dat.*[02468]000)`"

plot for [i in wmax_List] i using 1:2 with points title i

この場合、すべてのファイルは同じフォルダーにあります。title iオプション puts は、" E0025/4D/Re2000/"がプロット キーのすべての行に表示されるようにします。プロット スクリプトをそのフォルダーに配置することもできますが、そこには何千ものデータ ファイルが存在するため (実際には 1000 個ごとに 1 つプロットしています)、現在の位置でスクリプトを実行することを好みます。

それで、私の質問は、キーからフルパスを削除する方法はありますか? findファイル名だけで文字列のリストを生成する代わりに使用しようとしlsましたが、完全なパスと文字列をプロットコマンドに入れる方法がわかりません。

ありがとう

4

1 に答える 1

2

さまざまな可能性があります。

dirname = 'E0025/4D/Re2000/'
wmax_List = system('ls '.dirname.'NS.dat.*[02468]000')
ind = strlen(dirname)+1

plot for [i in wmax_List] i using 1:2 with points title i[ind:*]

また

plot for [i in wmax_List] i using 1:2 with points title system('basename '.i)
于 2013-10-28T19:02:05.963 に答える