sedでファイルを作成して置き換える方法

sedでファイルを作成して置き換える方法

100個のファイルを生成するには、シード、出力(HA.xyz)、および名前ファイルの値を変更する必要があります。

# MSA: H2O
seed 129472
tolerance 1.0
filetype xyz
output HA.xyz

Structure H2O.xyz
 number
 inside cube
end structure

Structure .xyz
 number
 inside cube
end structure

ベストアンサー1

while read -r seed name; do
    sed -e "s/^seed.*/seed $seed/" \
        -e "s/^output.*/output $name/" template.txt >"${name%.*}-$seed.conf"
done <file.in

これにより、というファイルが読み込まれますfile.in。ファイルの種類は次のとおりです。

00000 filename.ext

(最初の列のシード値、スペース、ファイル名)

このコマンドはテンプレート(質問に表示される形式のファイル)を取得し、sed新しいファイルを生成します。template.txt

新しいファイルの名前は次のように指定されますfilename-00000.conf(ファイル拡張子なしでファイル名とfile.inファイルのシードを使用)。

式はsed単にtemplate.txtor で始まる行を探し、適切な値を挿入します。seedoutput

おすすめ記事