我有一个包含 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