Gnuplot + bash脚本

时间:2011-12-29 09:39:27

标签: bash sed gnuplot

我遇到以下问题:

我想绘制许多数据文件,我发现了一个或多或少好的脚本

#! /bin/bash
ls *.data | sed "s/.data//" > list
for i in `cat list` ; do
   sed -e "s/INPUTFILE/$i/" -e "s/OUTPUTFILE/$i/" \
    plot.gnu | gnuplot
done
rm list

plot.gnu

set term postscript enhanced color
set output 'OUTPUTFILE.eps'
set title 'OUTPUTFILE'
p 'INPUTFILE.data' u 1:2 w l

但我对这部分有疑问

for i in `cat list` ; do
       sed -e "s/INPUTFILE/$i/" -e "s/OUTPUTFILE/$i/" \
        plot.gnu | gnuplot
    done

以某种方式它无法更新plot.gnu文件,因为它应该是...这个sed命令无法正常工作......

有人可以帮我解决这个问题吗?提前谢谢!

2 个答案:

答案 0 :(得分:3)

我们试试

for i in `cat list` ; do
   cat plot.gnu | sed "s/\(INPUTFILE\|OUTPUTFILE\)/$i/g" | gnuplot
done

干杯

答案 1 :(得分:1)

使用here-document可以使代码更加清晰。

#!/bin/bash
for i in `cat list`
do
    gnuplot <<_EOF_
    set term postscript enhanced color
    set output '$i.eps'
    set title '$i'
    p '$i.data' u 1:2 w l
_EOF_
done