我遇到以下问题:
我想绘制许多数据文件,我发现了一个或多或少好的脚本
#! /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命令无法正常工作......
有人可以帮我解决这个问题吗?提前谢谢!
答案 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