複数回発生する行のリストを含むファイルがあります。
output = filename
output = filename
output = filename
output = filename
filename
また、次の順序でエントリを置き換えるために使用したいtxtファイルには、ファイル名の時系列リストがあります。
2d_slv_Nx.19800111.SUB.nc
2d_slv_Nx.19800213.SUB.nc
2d_slv_Nx.19800322.SUB.nc
2d_slv_Nx.19800510.SUB.nc
私は次のような出力が欲しい
output = 2d_slv_Nx.19800111.SUB.nc
output = 2d_slv_Nx.19800213.SUB.nc
output = 2d_slv_Nx.19800322.SUB.nc
output = 2d_slv_Nx.19800510.SUB.nc
ベストアンサー1
$ cat tmplate.sh
output = filename
output = filename
output = filename
output = filename
$ cat mkrepl.sh
while read fname
do
sed -i -e "0,/filename/s/filename/$fname/" tmplate.sh
done < tmplate.sh
$
Bashスクリプト:tmplate.shから行を読み取り、各行を変数として抽出し、fname
bashsed
置換を使用して実行します。
使用sed
、
- -i インライン編集
- -e表現:
使用範囲
- 0を/filename/の行に設定します(行0から始まると、最初の置換後にsedが停止します)。
filename
次へ交換$fname