我有一个巨大的csv文件,大约10 ^ 9行,其中每行有一对id,如:
IDa,IDb
IDb,IDa
IDc,IDd
Run Code Online (Sandbox Code Playgroud)
调用此文件1.我有另一个小得多的csv文件,大约10 ^ 6行以相同的格式.调用此文件2.
我想简单地找到file2中包含至少一个存在于file1中某个ID的行.
有没有快速的方法来做到这一点?我不介意它是在awk,python还是perl.
$ cat > file2 # make test file2
IDb,IDa
$ awk -F, 'NR==FNR{a[$1];a[$2];next} ($1 in a&&++a[$1]==1){print $1} ($2 in a&&++a[$2]==1){print $2}' file2 file1 > file3
$ cat file3 # file2 ids in file1 put to file3
IDa
IDb
$ awk -F, 'NR==FNR{a[$1];next} ($1 in a)||($2 in a){print $0}' file3 file2
IDb,IDa
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |