当前位置: 技术问答>linux和unix
再次请教一个for问题
来源: 互联网 发布时间:2016-10-22
本文导语: i=1 for filename in EQ*.hyp do echo $filename sed -n '15,$ w tem.hyp' $filename t=`sed -n '$=' tem.hyp` q=$(($t-3)) echo $t " " $q sed -n '1,'$q''p tem.hyp | cut -c 1-5 -c 57-65 | sed "/1.00e+04/d" | sed -e 's/[A-Z][A-Z]*[0-9]*/EQSTA & P GAU /g...
i=1
for filename in EQ*.hyp
do
echo $filename
sed -n '15,$ w tem.hyp' $filename
t=`sed -n '$=' tem.hyp`
q=$(($t-3))
echo $t " " $q
sed -n '1,'$q''p tem.hyp | cut -c 1-5 -c 57-65 | sed "/1.00e+04/d" | sed -e 's/[A-Z][A-Z]*[0-9]*/EQSTA & P GAU /g' -e 's/[0-9].[0-9]0e-0[0-9]/& GAU &/g' > OB$i.obs
i=$(($i+1))
rm tem.hyp
done
程序想对一组文件EQ1,EQ2...EQ456进行编辑
从每个文件的第15行开始拷贝到倒数第三行
然后选取某些列数据,再进行编辑,最后写到OB*.obs文件里
问题1 是我此操作似乎不是按,1,2,3...的顺序
第一行echo出来就能看出,不知有什么办法按升序进行编辑
问题2,哪位朋友能帮助看看,这个scipt是否有什么错误
谢谢了
for filename in EQ*.hyp
do
echo $filename
sed -n '15,$ w tem.hyp' $filename
t=`sed -n '$=' tem.hyp`
q=$(($t-3))
echo $t " " $q
sed -n '1,'$q''p tem.hyp | cut -c 1-5 -c 57-65 | sed "/1.00e+04/d" | sed -e 's/[A-Z][A-Z]*[0-9]*/EQSTA & P GAU /g' -e 's/[0-9].[0-9]0e-0[0-9]/& GAU &/g' > OB$i.obs
i=$(($i+1))
rm tem.hyp
done
程序想对一组文件EQ1,EQ2...EQ456进行编辑
从每个文件的第15行开始拷贝到倒数第三行
然后选取某些列数据,再进行编辑,最后写到OB*.obs文件里
问题1 是我此操作似乎不是按,1,2,3...的顺序
第一行echo出来就能看出,不知有什么办法按升序进行编辑
问题2,哪位朋友能帮助看看,这个scipt是否有什么错误
谢谢了
|
我也纳闷呢
14行就是最后一行
不过bash似乎真的没有seq命令
--------------
不会吧 bash里是有seq的啊 你啥linux发行版 那这样试试
index=$(ls -l EQ*.hyp|wc -l)
ser=1
while [ $ser -le $index ]
do
filename=EQ${ser}.hyp
ser=$(($ser+1))
.......
done
14行就是最后一行
不过bash似乎真的没有seq命令
--------------
不会吧 bash里是有seq的啊 你啥linux发行版 那这样试试
index=$(ls -l EQ*.hyp|wc -l)
ser=1
while [ $ser -le $index ]
do
filename=EQ${ser}.hyp
ser=$(($ser+1))
.......
done