问题描述
我有两个文本文件:
文件1:
Category ID
C1 A1
C2 A2
C3 A3
C1 A4
C4 A5
档案2:
Purchase ID
O1 A1
O1 A2
O1 A3
O1 A4
O2 A5
O2 A6
O3 A7
O3 A2
我需要创建一个文件3:
O1 A1 C1
O1 A2 C2
等等。
文件1和文件2将非常大。
有人可以推荐一种有效的方法(而不是从文件1和文件2逐个搜索),可能是在python中。
但是其他语言也可以。 甚至excel都很好,如果可以使用?
任何形式的解决方案的任何线索将不胜感激。
1楼
在shell中使用join
:
join -j 2 -o 2.1 2.2 1.1 File1 File2
-
-j 2
表示“在第二列上连接” -
-o
指定输出中各列的顺序,2.1
代表“文件2,第1列”
2楼
您可以使用以下awk
命令来组合这两个文件:
awk 'FNR==NR{id[$2]=$1; next} {print $0, id[$2]}' file1 file2
Purchase ID Category
O1 A1 C1
O1 A2 C2
O1 A3 C3
O1 A4 C1
O2 A5 C4
O2 A6
O3 A7
O3 A2 C2
3楼
将2个文件导入数据库(例如SQLite)的2个表中,然后从T1中选择在T1.id = T2.id上加入T2。
sqlite shell可以设置csv或tabs模式。
(用逗号/制表符分隔。)输入和输出使用.import
和.once
。