数値IDを持つファイルAを使用して、IDと一致するファイルB行から列23を抽出します。

数値IDを持つファイルAを使用して、IDと一致するファイルB行から列23を抽出します。

233個のID(4桁、最初の列)を持つファイルA(fileA.txt)を使用して、ファイルBから列23を抽出したいが、ファイルA ID(最初の列)と一致する行からのみ抽出します。

私は試した:

 awk 'NR==FNR{ a[$0]++; next }{ if ($23 in a) {$0=$23; print}}' FileA.txt fileB.txt > fileC.txt

ベストアンサー1

私が正しく理解した場合は、fileA.txtの列1のIDをfileB.txtの列23のIDと一致し、一致する場合はfileB.txtの列23を印刷し、そうでなければ印刷します。編集するあなたの質問に詳細があります。

あなたのファイルが次のようになるとします。

==> fileA.txt <==
1111 column2 column3 column4 ...
2222 c1 c2 c3 c4 ...
4444 co1 co2 co3 co4 ...
3333 col1 col2 col3 col4 ...

==> fileB.txt <==
c11 ... c22 3333 c24 c25
co11 ... co22 0000 co24 co25
col11 ... col22 4444 col24 col25

その後、コマンドは次のようになります。

awk 'NR==FNR {seen[$1]++;next;} ($23 in seen){print $23}' fileA.txt fileB.txt

fileB.txtの出力

c11
col11

おすすめ記事