创建循环以查找并替换文件,然后创建多个输出文件

时间:2018-10-17 02:55:23

标签: loops sed grep sequence quoting

我是编码的新手,我一直在寻找一种编写可在更改主文件的一个方面后生成多个文件的循环的方法。

我已经使用了一些示例来开始使用,并且可以使代码工作以更改和创建1个文件,但没有循环。这是代码:

for i in 'seq 1 6'; do sed 's/ref.txt/ref${i}.txt/g' CPMIR.as > CPMIR${i}.as

最后,我想将CPMIR.as文件中的ref.txt更改为ref1.txt并输出一个新的CPMIR1.as文件ref2.txt并输出CPMIR2.as,ref3.txt并输出CPMIR3.as,....一直到6。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

首先,您没有使用反引号,或者最好将$(..)用于$(seq 1 6),而且,在double-quotes中使用变量时还需要使用sed

这应该有效:

#!/bin/bash

for i in $(seq 1 6)
do
sed "s/ref.txt/ref${i}.txt/" CPMIR.as > CPMIR${i}.as
done

答案 1 :(得分:0)

这可能对您有用(GNU sed和并行):

seq 6 | parallel "sed 's/ref\.txt/ref'{}'.txt/g' CPMIR.as >CPMIR{}.as"