あるファイルから全文を検索し、別のファイルから文字列を置き換える

あるファイルから全文を検索し、別のファイルから文字列を置き換える

Source_file.txtにはこのようなデータがあります。

5daee1ef55297ba2fac78933

そしてTarget_file.txtに

$$API_JOB_ID=5daed2a255297ba2fac78930
$$API_JOB_RES=succeeded
$$API_SERVER=awsabc1108

Source_file.txt今の値を変更する必要がありますTarget_file.txt

出力は次のようにする必要があります

$$API_JOB_ID=5daee1ef55297ba2fac78933
$$API_JOB_RES=succeeded
$$API_SERVER=awsabc1108

参考にしてくださいソースファイル.txt他のプロセスが完了するたびに、値は動的に変更されます。したがって、ターゲットファイルは毎回正しい内容で更新する必要があります。$$API_JOB_ID

この問題を解決するには Unix コマンドが必要です。

ベストアンサー1

まあ、これは汚い、しかし動作するはずです。

sed 's/\$\$API_JOB_ID=.*$/\$\$API_JOB_ID='"$(cat Source_file.txt)"'/' Target_file.txt

変更されたバージョンを端末に印刷するのではなく、ターゲットファイルを直接編集するには、次のコマンドを使用します。

sed -i 's/\$\$API_JOB_ID=.*$/\$\$API_JOB_ID='"$(cat Source_file.txt)"'/' Target_file.txt

それ汚い、主に私がやっていることのために多すぎるファイル形式とコマンドの成功の前提は、これらの前提に大きく依存します。正しい、どの仮定ができるかを正確に知る必要がありますが、説明が少しあいまいです。ファイルに異なる形式やより複雑な構造があるため、これが失敗する可能性があると思われる場合は、これを知ってSource_file.txtおくTarget_file.txt必要があります。

おすすめ記事