次の要件を満たすのに役立ちますか?
次の内容を含むFILE1とFILE2という2つのファイルがあります(例)。
ファイル1:
Column1 Column2
------------------------
M 1.2
A 11
S hostname
T TCP
E 120
R Y
ファイル2:
Column1 Column2
---------------------------
A 12
M 1.3
T SSL
S hostname1
FILE1とFILE2のフィールドの順序が異なります。 FILE1とFILE2を比較し、FILE1の最初の列を取得し、FILE2の全列1を検索したいと思います。一致するものが見つかった場合(FILE2で)、列2の値を選択する必要があります。 FILE1 値の対応するフィールドを置き換えます。
誰もが私の要件を助けることができれば幸いです。
答え1
次のことができます。
$ join -o 0,1.2,2.2 -a 1 <(sort -k 1,1 FILE1) <(sort -k 1,1 FILE2) |
awk '{print $1, $NF}'
A 12
E 120
M 1.3
R Y
S hostname1
T SSL
または、次の行の順序を維持してくださいFILE1
。
$ awk '!n {a[$1] = $2; next}
{print $1, $1 in a ? a[$1] : $2}' FILE2 n=1 FILE1
M 1.3
A 12
S hostname1
T SSL
E 120
R Y