J'ai un certain nombre de fichiers journaux au format texte dans le format suivant :
ID (17 characters)
Timestamp (14 characters YYYYmmddHHMMSS e.g. "20060210100040" -> 2006/02/10 10:00:40)
Random data (? characters)
end of line
Les fichiers sont déjà triés par date. J'ai besoin d'obtenir un fichier journal contenant tous les journaux provenant de plusieurs fichiers journaux, triés par date. Notez que les fichiers de logs sont vraiment énormes, environ 3-4G chacun (et il y en a des douzaines). J'ai essayé la commande suivante :
sort -s -m -t '|' -k1n,1n +17 -o data_sort.txt *.TXT
Voici comment j'ai obtenu cette commande :
-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
En fait, il échoue lamentablement. Le fichier de sortie data_sort.txt est juste la concaténation de tous les fichiers, pas triés du tout :(
J'apprécierais beaucoup que quelqu'un puisse m'aider à résoudre ce problème !
Remerciements