【发布时间】:2018-10-24 13:39:51
【问题描述】:
我有一个排序后的 .csv 文件,如下所示:
AABB1122,ABC,BLAH,4
AABB1122,ACD,WHATEVER,1
AABB1122,AGT,CAT,4
CCDD4444,AYT,DOG,4
CCDD4444,ACG,MUMMY,8
CCEE4444,AOP,RUN,5
DDFF9900,TUI,SAT,33
DDFF9900,WWW,INDOOR,5
我想将文件拆分为每个大约两行的较小文件,但我不希望将第一列中具有相似值的行分开。
在这里,我最终会得到三个文件:
x00000:
AABB1122,ABC,BLAH,4
AABB1122,ACD,WHATEVER,1
AABB1122,AGT,CAT,4
x00001:
CCDD4444,AYT,DOG,4
CCDD4444,ACG,MUMMY,8
x00002:
CCEE4444,AOP,RUN,5
DDFF9900,TUI,SAT,33
DDFF9900,WWW,INDOOR,5
我的实际数据大小约为 7 gigs,包含超过 1 亿行。我想将其拆分为每个约 100K 行或约 6MB 的文件。我可以使用文件大小或行号进行拆分。
我知道我可以使用“排序”来进行拆分,例如:
split -a 5 -d -1 2
在这里,这将给我四个文件,并且在大多数情况下,第一列中的类似值将被拆分为文件。
我想我可能需要 awk,但是,即使在阅读了手册之后,我也不确定如何继续。
感谢您的帮助!谢谢!
【问题讨论】: