次のファイル()がありますone.cnf
。
KEY1="value1"
KEY4="VALUE4"
別のファイル(two.cnf
)は次のとおりです。
USER_HOST="local"
KEY1="abc"
PASS="lorem"
KEY2="ABC"
KEY4="XYZ"
その変数の値を読んでone.cnf
置き換えたいと思いますtwo.cnf
。
だからそれは次two.cnf
のように見えます。
USER_HOST="local"
KEY1="value1"
PASS="lorem"
KEY2="ABC"
KEY4="VALUE4"
ベストアンサー1
使用法awk
:ファイル1からキーを読み、ファイル2を置き換えます。
awk 'BEGIN{FS=OFS="="}
NR==FNR {key[$1]=$2 ; next }
$1 in key {$2=key[$1]}
1' one.cnf two.cnf
交換が必要な場合はご利用くださいsponge
awk '<code>' one.cnf two.cnf | sponge two.cnf
または、GNUawk
内部でone.cnf
削除されないようにコードを少し変更する必要があります。
awk -i inplace 'BEGIN{FS=OFS="="}
NR==FNR {key[$1]=$2}
FNR!=NR && $1 in key {$2=key[$1]}
1' one.cnf two.cnf
-i inplace -v INPLACE_SUFFIX=.bup
- サフィックスを使用して元のファイルを.bup
バックアップするために使用されます。