次のファイルがあります。
aaa bbb ccc DDD
ads zzz caa DDD
aba bab cac DAD
aad cca cas SFD
そしてファイルb:
DDD 5
DAD 13
SFD 11
ファイルbに基づいてファイルaに5番目の列を追加したいと思います。これは、ファイルbのファイルaの列4の用語を検索し、ファイルbの列2に対応する値を使用してファイルaに5番目の列を追加することを意味します。
助けてください?
答え1
join -o 1.1,1.2,1.3,1.4,2.2 -1 4 -2 1 <(sed '1d' file1 | sort -k4) <(sed '1d' file2 | sort)
sed '1d'
ヘッダー除去用(上から1行)
次に、フィールド 4 の最初のファイルをフィールド 1 の 2 番目のファイルと結合します。
また、結合が機能するにはファイルを並べ替える必要があるため、結合フィールドでファイル1を並べ替えます。
-o
NMが印刷される順序です(N =ファイル、M =フィールド)。