列のパターンを置き換える

列のパターンを置き換える

入力で他のファイルのファイルパターンを置き換える必要があります。

file1 の内容を想定します。

ab 10
bc 20
cd 30
de 40

ファイル2:

server1;10 feb 2020;disk5;123455678;comment;10;1;desc;abcde3;987654
server1;10 feb 2020;disk6;123455678;comment;10;7;desc;abcde3;987654
server1;10 feb 2020;disk10;123455678;comment;20;4;desc;abcde3;987654
server1;10 feb 2020;disk1;123455678;comment;30;5;desc;abcde3;987654
server1;10 feb 2020;disk9;123455678;comment;20;4;desc;abcde3;987654
server1;10 feb 2020;disk2;123455678;comment;40;6;desc;abcde3;987654
server1;10 feb 2020;disk5;123455678;comment;30;8;desc;abcde3;987654

ここでは、;file2の区切り文字で、列6をfile1の一致する値に置き換えたいと思います。

つまり

server1;10 feb 2020;disk5;123455678;comment;**ab**;1;desc;abcde3;987654

awk/を介して動作することを知っていますsed。助けてもらえますか?注:私たちはawk/sedのGNUバージョンをAIX

ベストアンサー1

$ 6の値がすべてfile1に含まれているとします。

awk 'FNR == NR {T[$2] = $1; next} {$6 = T[$6]} 1' file1 FS=";" OFS=";" file2

おすすめ記事