У меня есть большой файл с разделителями (с трубой '|' в качестве разделителя), который мне удалось отсортировать (используя сортировку linux) в соответствии с первым (числовым), вторым (числовым) и четвертым столбцом (порядок строк, поскольку это значение метки времени ). Файл такой:
77|141|243848|2014-01-10 20:06:15.722|2.5|1389391203399
77|141|243849|2014-01-10 20:06:18.222|2.695|1389391203399
77|141|243850|2014-01-10 20:06:20.917|3.083|1389391203399
77|171|28563|2014-01-10 07:08:56|2.941|1389344702735
77|171|28564|2014-01-10 07:08:58.941|4.556|1389344702735
77|171|28565|2014-01-10 07:09:03.497|5.671|1389344702735
78|115|28565|2014-01-10 07:09:03.497|5.671|1389344702735
Мне было интересно, есть ли простой способ разделить этот файл на несколько текстовых файлов с одним вкладышем awk, sed, grep или perl всякий раз, когда изменяется значение первого столбца или второго столбца. Конечным результатом для примера файла должно быть 3 текстовых файла, подобных этому:
77|141|243848|2014-01-10 20:06:15.722|2.5|1389391203399
77|141|243849|2014-01-10 20:06:18.222|2.695|1389391203399
77|141|243850|2014-01-10 20:06:20.917|3.083|1389391203399
77|171|28563|2014-01-10 07:08:56|2.941|1389344702735
77|171|28564|2014-01-10 07:08:58.941|4.556|1389344702735
77|171|28565|2014-01-10 07:09:03.497|5.671|1389344702735
78|115|28565|2014-01-10 07:09:03.497|5.671|1389344702735
Я мог бы сделать это на Java, конечно, но я думаю, что это было бы излишеством, если бы это можно было сделать с помощью скрипта. Кроме того, возможно ли, что созданные имена файлов используют значения этих двух столбцов, что-то вроде 77_141.txt для первого файла, 77_171.txt для второго файла и 78_115.txt для третьего?