単一の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内部を指定し、行30番号を指定し、指定されたsテキストの検索を指定します。私たちの場合、これは30行のすべてのテキストを意味するので、そのテキストをファイル.*に置き換えようとしています。variable D1 equal $iD$i.txt

関連情報