2つのファイルがあります。 FILE1 には多くの行が含まれ、FILE2 には KEY VALUE パラメータが含まれています。 FILE2をFILE1と比較し、一致するものがある場合は、FILE1の対応する単語をFILE2の次の列に置き換える必要があります。
例:
ファイル1:
<SOME YAML CODE
-------------->
PARM1
PARM2
PARM3
PARM4
<END OF YAML CODE
---------------->
ファイル2:
PARM1 mmddyy
PARM2 hhmmss
PARM3 awsid
PARM4 cc
したがって、FILE2のFILE1で一致する各項目について、FILE1の対応する単語はFILE2の2番目の列に置き換える必要があります。したがって、必要な出力は次のようになります。
<SOME YAML CODE
-------------->
mmddyy
hhmmss
awsid
cc
<END OF YAML CODE
---------------->
限られたsedを試してみましたが、期待した結果は得られませんでした。
お時間とご支援ありがとうございます
答え1
あなたはそれを使用することができますawk
:
awk '
NR==FNR{k[$1]=$2;}
NR!=FNR{if($1 in k){$0=k[$1]};print}
' file2 file1
でフィールド配列を保存しfile2
、見つかった場合はfile1
row($0
)をその配列の内容に置き換えます。