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

Create loop to find and replace in file, then create multiple output files

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

我已经使用了一些示例来开始,并且可以让代码用于更改和创建 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.

感谢您的帮助!

首先,你没有使用反引号或者更好你应该使用 $(..) 代替 $(seq 1 6) ,另外,你需要使用 double-quotes 而在 [=14 中使用变量=].

这应该有效:

#!/bin/bash

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

这可能适合您(GNU sed 和并行):

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