【发布时间】:2016-02-12 22:50:24
【问题描述】:
假设我有 3 个文件:File-A、File-B、File-C;其中每个文件有两列数据(空间划定),但行数未知(和可变)。
输入
File-A:
1 dE
1 dF
2 dF
2 dH
File-B:
1 dI
3 dJ
3 dK
File-C:
2 dF
3 dH
3 dJ
3 dK
4 dL
如何有效地对数据进行排序,以便为第一列中的每个值创建新文件(即File-1、File-2、File-3、File-4),以跟踪他们的第二列合作伙伴数据和原始文件名?
期望的输出
File-1:
A dE
A dF
B dI
File-2:
A dF
A dH
C dF
File-3:
B dJ
B dK
C dH
C dJ
C dK
File4:
C dL
实际上,我有几十万个原始文件,每个文件都有几百行数据(但原始文件和新文件的总数是已知的)。实现这种排序最省时的方法是什么?
与 Fortran 之类的程序相比,Bash 脚本会是最快的方法吗?我只是在学习 sed 和 awk——这样的东西效果最好吗?
如果在链接之前提出了类似的问题,我们将不胜感激。到目前为止,我发现的 closest question 似乎表明 awk 可能是一种方法。
【问题讨论】:
-
“与 [...] 相比,bash 脚本会是最快的方法吗?”:否 :)