Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/08/2013, à 13:01

cambronne

tri par date ds log.txt [resolu]

Bonjour,
J'essaye de faire un tri par date dans un fichier de log, ou j'ai des lignes qui vont de 03/2012 à 08/2013
la 4° colonne est de type  [01/Jan/2013:21:22:38

J'ai essayé ca, mais j'ai tjs 2013 en premier... Where is (my) bug?

sort -k 4.2,4.12n -M log.txt

C

Dernière modification par cambronne (Le 13/08/2013, à 14:47)

Hors ligne

#2 Le 13/08/2013, à 13:50

pingouinux

Re : tri par date ds log.txt [resolu]

Bonjour,
Peux-tu montrer quelques lignes du fichier ?

Ajouté :
Voici une suggestion en python :

$ cat mon_tri.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-

import sys, time

def cle(lig) :
    return time.mktime(time.strptime(lig.split()[3][1:12],'%d/%b/%Y'))

with open(sys.argv[1],'r') as f : ligs=f.readlines()
ligs.sort(key=cle)
for lig in ligs : print(lig,end='')

Et pour lancer le tri :

./mon_tri.py log.txt

Dernière modification par pingouinux (Le 13/08/2013, à 14:36)

Hors ligne

#3 Le 13/08/2013, à 14:46

cambronne

Re : tri par date ds log.txt [resolu]

Merci, je m'en suis sorti (pas tres glorieusement je le reconnais) en effectuant un tri sur le une autre colonne (nom de fichier d'où provient la ligne de log, comportant la mention du mois et de l'année)

Par contre je garde ton script dans un coin THKS !

(et un jour, c'est promis je me mets a Python)

C

Hors ligne

#4 Le 13/08/2013, à 15:54

Postmortem

Re : tri par date ds log.txt [resolu]

Salut,
Avec sort, si ton séparateur est exactement une espace :

sort -s -t ' ' -k 4.9n -k 4.5M -k 4.2n -k 4.14,4.21 log.txt

J'ai trouvé ça dans "info sort" (faut lire les docs !! tongue )


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne