在bash循环中迭代更改文件

时间:2018-10-25 08:28:49

标签: bash awk sed

我有一个文件default.txt,其中有此行

DEFAULT_CONFIG_PTH = models/config_100i.ini

我需要循环更改

for m in $(seq 2 55); do
  sed 's/100i/i${m}/g' default.txt > tmp.txt
    mv tmp.txt default.txt
    run *.py # it uses default.txt
done

问题是每次我将文件100i更改为新值时都说i2,我无法在下一次迭代中将其更改为i3,因为我需要替换i2而不是100i。有办法解决吗?

1 个答案:

答案 0 :(得分:2)

好的。用另一个名称(例如template.txt)复制原始文件。然后做

sed '...' template.txt > default.txt

您已经完成。

另一种方法是修复python脚本以接受文件名作为参数。