Linux

從單個 txt 文件創建多個文件

  • March 24, 2022

我有一個需要多次複製的輸入文件,每個文件中都有一點變化,即每個文件中的每 30 行要更改一次。

例如

我的主要文本文件名是 D0.txt,我需要複製多個數字時間。並且在第 30 行是“變數 D1 等於 0.0”

現在我第一次複製這個文件

我想將該字元串更改為“變數 D1 等於 1”

然後將文件另存為 D1.txt。

同樣,我想創建假設 5 個文件,然後我想循環 100 次。

所以文件保存在一個文件夾中

D0.txt

D1.txt

D2.txt 等等,其第 30 行中的每一行都作為“Diameter = $n”範例文本文件格式附在下面。以及文件夾中所需的文件格式。

在此處輸入圖像描述 在此處輸入圖像描述

在 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 行的文本。 where-i指定 in-place ,30指定行號,s指定搜尋給定的文本,在我們的例子中,.*它說明了第 30 行的任何文本,我們希望將該文本替換variable D1 equal $i為文件D$i.txt.

引用自:https://unix.stackexchange.com/questions/696645