2 g mumuxi G_mumuxi 于 2016.03.09 14:34 提问

求助各位~一个有关linux中.sh脚本里写循环的问题,谢谢O(∩_∩)O~

a = ["name1", "name2", "name3"......"name100"]

for i in 路径/*.py    #这个路径底下有100个python脚本,名字不同,代码一样
do
  我需要把每个python文件打开,改动一行if name = "":把a中名字对应进去,保存,运行下边这条
    python $i > $i.txt   #各自结果存到相应的txt($i.txt 这句不确定写对了没。。。)
done
do里面有两个任务,一是把python脚本改下,就是粘进去相应名字(100个名字,100个python脚本,100个结果txt)。
二是运行这个脚本
其实开始我都是对着a列表,打开python自己粘进去的,再运行,但现在时间紧迫,不知谁能帮忙想想怎么写呢?

2个回答

qwerB
qwerB   2016.03.09 16:20
已采纳

看如下脚本可以不:
a="name1:name2:...:name100"
n=1

for i in $(ls) ;
do
e="echo $a | cut -d : -f $n"
name=$(eval $e)

    sed -i s/if name = \"\"/if name=\"$name\"/g $i

    python $i > ${i}.txt

done

qwerB
qwerB   2016.03.09 16:22

忘记n+1了,在循环最后一行加上n=$(($n+1))

G_mumuxi
G_mumuxi 谢谢!!!
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!