使用具有数字 ID 的文件 A 从与 ID 匹配的文件 B 行中提取第 23 列

使用具有数字 ID 的文件 A 从与 ID 匹配的文件 B 行中提取第 23 列

我想使用具有 233 个 ID(四个数字,第一列)的文件 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中的column1中的ID与fileB.txt中的column23中的ID进行匹配,如果匹配则打印fileB.txt中的column23,如果不匹配,请编辑你的问题有更多细节。

我假设你的文件看起来像这样:

==> 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

相关内容