Bonjour,
J'aimerais classer les dates de mon fichier de configuration dans un tableau à 4 colonnes, par ordre décroissant avec en tête le jour de l'année où l'activité journalière est la plus élevée. J'aimerais utiliser une longue commande shell mais pas de script (Je dois pouvoir la taper entièrement sur le terminal)
Mon fichier a des entrées semblables à ca:
203.40.195.112 - - [18/Apr/2004:23:01:55 +1000] "Get /ASGAP/ jpg/ 257811.jpg HTTP/1.1" 200 5589
Plusieurs lignes sont imprimées pour la même date correspondant à chaque document accédé. Pour extraire uniquement les dates, j'ai utilisé une commande cat suivie d'un | et plusieurs commandes cut reliées par des | . J'ai donc obtenu plusieurs exemplaires de chaque date sous la forme 18/Apr/2004 dans un fichier nom-fichier-dates (qui sera réécrit après chaque commande). Malheureusement, utiliser la commande grep -c ou Wc -l sur ces dates comptabilise toutes les dates et non pas uniquement le nombre de dates identiques... impossible donc de comptabiliser l'activité de chaque date et d'insérer ce nombre devant chaque date dans le fichier nom-fichier-dates sous la forme:
chiffre-d'activité / jour / mois / année
Puis je voudrais aussi pouvoir tout afficher dans un tableau en utilisant:
awk '/' '{print $1, $2, $3, $4}' nom_fichier_dates > nom-fichier-dates
Le tableau aurait donc les colonnes: chiffre-activité mois jour année avec un espace au lieu d'un / comme séparateur.
Le chiffre (correspondant au compteur d'activité) ($1) sera ensuite utilisé pour classer le tableau par ordre décroissant:
sort -r nom-fichier-dates | uniq > nom-fichier-dates.
Finalement, le tableau serait affiché par une commande head.
Merci beaucoup pour votre aide.
Valérie
Partager