У меня есть отсортированный файл .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 гигабайт и содержат более 100 миллионов строк.Я хочу разбить его на файлы по 100K строк или ~ 6 МБ.Я в порядке с использованием размера файла или номера строк для разделения.
Я знаю, что я могу использовать «сортировку» для разделения, например:
split -a 5 -d -1 2
Здесь, это даст мне четыре файла, и аналогичные значения в первом столбце будут разделеныфайлы в большинстве случаев.
Я думаю, что мне, вероятно, нужен awk, но даже после прочтения руководства я не уверен, что делать дальше.
Помощь приветствуется!Спасибо!