ファイル比較

ファイル比較

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、見つかった場合はfile1row($0)をその配列の内容に置き換えます。

おすすめ記事