【发布时间】:2015-03-18 13:42:12
【问题描述】:
我有两个文件。第一个文件包含 500000 条记录(数字),第二个文件包含 4000000 条记录(数字)。
数字不在一行中。它们像 Excel 工作表中的一列一样。
文件 1 包含以下数字:
1483
2111
2973
3214
3503
3639
3747
4042
4351
4766
4809
5950
6616
6899
7559
7940
8205
8262
8291
文件 2 包含以下数字:
1483
2111
2973
3214
3503
3639
3747
4042
4351
4766
4809
5950
6616
6899
7559
7940
8205
8262
8291
9000
9163
9229
9497
9719
0409
0421
0698
0924
1059
我想找出第一个文件中有多少记录不存在于包含第二个文件的记录中。我尝试使用 Excel 进行比较,但我的笔记本电脑多次进入挂起状态。另外,我在 UNIX 中尝试使用 diff 命令,但没有达到预期的输出。 请有人帮我在 UNIX 中解决这个问题,因为它比其他方法花费的时间更少。
【问题讨论】:
-
要获得一个好的答案,如果您提供数据样本和您期望的输出示例,将会很有用。如果只是一长串数字,是否已排序?
-
Hi Sobrique,File 1 contains below numbers:1483 2111 2973 3214 3503 3639 3747 4042 4351 4766 4809 5950 6616 6899 7559 7940 8205 8262 8291 File 2 contains below numbers:1483 2111 2973 3214 3503 3639 3747 4042 4351 4766 4809 5950 6616 6899 7559 7940 8205 8262 8291 9000 9163 9229 9497 9719 0409 0421 0698 0924 1059。
-
你能把这些编辑成你的问题吗?看起来像纯数字,按顺序排序。这让问题变得容易多了。
-
数字不在一行中。它们像excel表格的一列一样,是一个接一个
-
好的。这就是为什么将输入数据作为样本包含在内很重要的原因。与文件中的外观完全相同(包括换行符)。
diff在那种情况下会做你想做的事。