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 个绘制一个),所以我更喜欢在当前位置执行脚本。

所以,我的问题是,有没有办法从密钥中删除完整路径?我尝试使用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 回答