【发布时间】:2013-08-10 18:04:21
【问题描述】:
输入文件是一个制表符分隔的 unicode txt
a A e f m
b B g h
c C i j
b B k l
我想按第一列和第二列进行匹配并合并。所以我想得到
a A e f m
b B g h k l
c C i j
代码必须检测输入中的最大列数。因为在这个例子中是 5,所以“k l”是从第 6 列开始的。
实际上,当它们都是数字时,我几乎可以使用 Matlab 做到这一点。但是哦,当它们是字母时,Matlab 在处理 unicode 方面非常糟糕,尽管我读了 stackoverflow 关于如何在 Matlab 中处理 unicode 我放弃了。所以我现在转向 python。
使用 excel VBA,这似乎是可行的,但由于数据量太大,所以我猜 python 会比 Excel VBA 快(我猜对了吗?)
【问题讨论】:
-
这是一个非常简单的练习
awk:awk -F\t '{a=$1 "\t" $2; $1=$2=""; x[a] = x[a] $0} END {for(y in x) print y,x[y]}' -
@Nirk 根据 stackoverflow 指南,您的答案不应作为评论发布,请参阅stackoverflow.com/help/privileges/comment。
-
@MadanRam 这不是一个答案,因为问题涉及 python,我没有给出 python 答案。最好将其作为注释放置,除非 user2604484 认为 awk 是可接受的解决方案
-
@Nirk 哦,非常感谢。我不知道有这种类型的解决方案。由于您没有将其发布为答案,因为我没有专门询问 awk,因此我在 stackoverflow.com/questions/18168664/… 上发布了一个类似的问题,您在那里有答案吗?再次感谢。