从单个txt文件创建多个文件

从单个txt文件创建多个文件

我有一个输入文件,需要多次复制,每个文件中都有一点更改,即每个文件中的每 30 行都要更改。

例如

我的主文本文件名是 D0.txt,我需要复制多个数字。第 30 行是“变量 D1 等于 0.0 ”

现在,当我第一次复制这个文件时

我想将该字符串更改为“变量 D1 等于 1 ”

然后将文件另存为 D1.txt。

同样,我想创建假设 5 个文件,然后我想循环它 100 次。

所以文件保存在文件夹中

D0.txt

D1.txt

D2.txt 等,其每行第 30 行为“Diameter = $n”,示例文本文件格式附在下面。以及文件夹中文件的所需格式。

在此输入图像描述 在此输入图像描述

答案1

在 bash 中你可以做

for i in {1..5}; do
 cp D0.txt D$i.txt;
 sed -i "30s/.*/variable D1 equal $i/" D$i.txt;
done

这里{1..5}指定循环的范围,并且在每次迭代期间我们

使用新名称复制文件。使用 sed 命令替换第 30 行上的文本。其中-i指定 in-place 、30指定行号、s指定搜索给定文本,在我们的例子中,它.*表示第 30 行上的任何文本,我们希望将该文本替换为variable D1 equal $i文件D$i.txt

相关内容