保存输出文件,每次循环运行

时间:2019-10-17 15:41:36

标签: bash

我只想在文件中更改一个数字,然后运行它并保存输出文件。这需要以迭代方式完成。

cat文件1

decay=(  1 5 2 6 )
for i in $decay
do
    run   file2.i
done

cat file2.i

cell 215 cell 115 cell ${i}

所以现在对于每个衰减(i),我需要file2.i才能使用衰减(i)。同样,输出文件将始终具有相同的名称file2.i_outp。如何在每次运行时保存输出文件,而不是覆盖每个i。

2 个答案:

答案 0 :(得分:0)

将模板file2.i复制到一个临时文件,将${decay}替换为当前数组元素。

decay=(1 5 2 6)
for i in $decay
do
    sed "s/\\${i}/$i/" file2.i > /tmp/file2.i.$$
    run /tmp/file2.i.$$
    rm /tmp/file2.i.$$
done > file2.i_outp

答案 1 :(得分:0)

这个很好用

for i in {1 5 2 6}
do
    sed "s/\\${i}/$i/" file2.i > /tmp/file2.i.$$
    run /tmp/file2.i.$$
    rm /tmp/file2.i.$$
done > file2.i_outp