我该如何解决这个问题,我有我已经对信息进行了排序的文件,我想比较该文件中的某个索引与在另一个索引中,一个问题是文件非常大,数百万行。我想逐行比较我有的文件,如果它们匹配,我想使用索引方法输入这些值以及其他值。逐行比较文件以查看它们是否相同,如果是这样的话输出它们
=======================
让我澄清一下,我要好好说行[X]的X将保持不变因为它的格式是一致的,我想在另一个文件中对行[y]运行line [x],我想对整个文件执行此操作,并将每个匹配对输出到另一个文件。在另一个文件中,我也希望能够包含第一个文件中的其他部分,就像添加更多索引一样;行[a],行[b],行[c],行[d],最后行[y]作为与该信息的匹配。
尝试3:
我在这个格式信息的文件:
#x是一条线
x= data,data,data,data,data,data
还有数以百万计的那行。
我还有一个文件,相同的格式:
xis a line
x= data,data,data,data
我想用X [#]从第一个文件,并从第二个文件X [#],我想看看这两个值匹配,如果他们我想要输出这些,以及来自第二个文件中的其他几个x [#]值,它们在同一行上。
这样做有帮助吗? 格式的文件是像我说:(但是有几百万,我想找到两个文件对,因为他们都应该匹配)的文件1
line 1 data,data,data,data
line 2 data,data,data,data
数据:
从文件2(N'068D556A1A665123A6DD2073A36C1CAF', N'A76EEAF6D310D4FD2F0BD610FAC02C04DFE6EB67',
N'D7C970DFE09687F1732C568AE1CFF9235B2CBB3673EA98DAA8E4507CC8B9A881');
数据:
00000040f2213a27ff74019b8bf3cfd1|index.docbook|Redhat 7.3 (32bit)|Linux
00000040f69413a27ff7401b8bf3cfd1|index.docbook|Redhat 8.0 (32bit)|Linux
00000965b3f00c92a18b2b31e75d702c|Localizable.strings|Mac OS X 10.4|OSX
0000162d57845b6512e87db4473c58ea|SYSTEM|Windows 7 Home Premium (32bit)|Windows
000011b20f3cefd491dbc4eff949cf45|totem.devhelp|Linux Ubuntu Desktop 9.10 (32bit)|Linux
它在排序顺序是字母数字的,我想使用的滑块方法。我的意思是,如果file1 [x]是< file2 [x]将滑块向下或向上移动,取决于一个值是否大于另一个值,直到找到匹配,如果是,则打印输出以及其他值这将识别该散列。
我想要什么,结果将是:
file1的[x]和上file2的其相应的匹配[X]输出到文件中,以及其它文件1 [x]其中x可以是从任何索引该线。
对于数百万行来说,如果您有足够的内存,dict就足够了 – PasteBT
如果您有权访问标准POSIX实用程序,'comm -12 file1 file2'将仅输出两者共有的行。这是最终目标吗?你会执行更多的搜索,而不是插入?或者比搜索更多的插入? – sarnold
我不完全清楚你真的想要什么。你想只比较file1 [N]到file2 [N],还是想比较file1 [N]和file2 [M],其中N和M可能相等也可能不相等?你的问题的不同部分似乎暗示了两者。 –