У меня есть куча текстовых лог-файлов в следующем формате:
ID (17 characters)
Timestamp (14 characters YYYYmmddHHMMSS e.g. "20060210100040" -> 2006/02/10 10:00:40)
Random data (? characters)
end of line
Файлы уже отсортированы по отметке времени. Мне нужно получить 1 файл журнала со всеми журналами из нескольких файлов журналов, отсортированных по отметке времени. Обратите внимание, что файлы журнала действительно огромные, около 3-4 ГБ каждый (и их десятки), я попробовал следующую команду:
sort -s -m -t '|' -k1n,1n +17 -o data_sort.txt *.TXT
Вот как я закончил с этой командой:
-s : don't bother with tie results
-m : merge all logs files
-t '|' : there is no | in my logs, so the whole line should be field 1
-k1n,1n: sort on the first field as a numeric value
+17 : the timestamp starts at index 17
-o : output file
На самом деле ... это с треском проваливается. Выходной файл data_sort.txt является просто объединением всех файлов, не отсортированным вообще :(
Буду очень признателен, если кто-нибудь сможет оказать помощь по этой проблеме!
Спасибо