比较 2 个文件并将匹配值打印到新文件

比较 2 个文件并将匹配值打印到新文件

我有一个包含 1200 万行的文件,每行分为 8 个部分,所有部分都用“;”分隔。文件 1 示例: AAA;BBB;CCC;DDD;EEE;FFF;GGGXX;HHH

每条线路都有一个唯一的 ID,价格为 7 美元。我有另一个文件 (File2),其中列出了大约 20K 个唯一 ID,如下所示: GGGXX; GGGXY; GGGXZ;

每个人都有自己的路线。

我需要结果来根据 File2 中的 ID 创建一个新文件,其中包含 File1 中的完整数据行。

当 File2 有超过 1 个条目时,使用下面的代码我似乎无法让它工作。

awk -F ";" 'NR==FNR{a[$1]} ($7 in a){print}' File2.txt File1.txt

File2 中列出 ID 的方式是否有问题,或者我是否做错了什么?

答案1

请使用以下命令来获取所需的输出。

awk  -F "," 'NR==FNR {a[$7];next}($1 in a){print $1}' file1 file2 > newfile

相关内容