[Ksh] inverser un fic pour le lire à l'envers

Fermé
raoulglloq Messages postés 2 Date d'inscription lundi 25 juillet 2005 Statut Membre Dernière intervention 29 janvier 2007 - 26 sept. 2006 à 12:23
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 27 sept. 2006 à 13:17
Je voudrai lire un fichier à l'envers, de bas en haut.

J'utilise la fonction "while read line" qui ne semble pas le permettre.
Je pensai donc dans un premier temps inverser le fichier.

La commande sort possede l'option -r qui permet d'inverser le tri, cependant il effectue un tri alphanumerique en plus de l'inversion, ce que je ne veut pas, je veux juste inverser.

Or mon fichier est une log dont chaque ligne commence par "2006", je me demandait donc si il etat possible de restraindre le tri de la commande "sort" au premier caractère ("2"). Cependant l'option des clé ne permet pas de le permettre: il commence en effet par tri sur le caractere correspondant à la clé, mais il tri ensuite sur le reste.

Qqun a t'il une solution?
A voir également:

3 réponses

blux Messages postés 26537 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 317
27 sept. 2006 à 10:00
Salut,

si tu es sous AIX, la commande sort te permet de créer des clés disjointes...

Ex :
sort -t. -r -k3,3 -k2,2 -k 1,1
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 sept. 2006 à 10:39
Salut,

tu peux passer le résultat de sort dans un pipe |
sort -r fichier | perl -ne ' print if /^2006/'
lami20j
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
27 sept. 2006 à 10:48
Salut,
tac le_fichier
;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 sept. 2006 à 11:08
Salut,

alors là, chapeau ;) Je ne connaissais pas cette commande.

lami20j

P.S. En revanche s'il veut que les lignes qui commence avec 2006...
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
27 sept. 2006 à 11:43
Salut lami20j,

Chapeau à Adrien alors, c'est lui qui m'a enseigné cette commande dans un post. En plus elle est pas dure à se rappeler, c'est l'enverse de "cat" ;-))

Et pour le "PS", pas de soucis, je cite :"Je voudrai lire un fichier à l'envers, de bas en haut. " ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
27 sept. 2006 à 12:22
Re,

Et pour le "PS", pas de soucis, je cite ....

Oui, tu as raison, mais moi j'ai lu plus bas ;)
Or mon fichier est une log dont chaque ligne commence par "2006", je me demandait donc si il etat possible de restraindre le tri de la commande "sort" au premier caractère ("2")

lami20j

P.S. Merci Adrien :-)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
27 sept. 2006 à 12:27
Oui mais il fallait lire plus haut aussi :
La commande sort possede l'option -r qui permet d'inverser le tri, cependant il effectue un tri alphanumerique en plus de l'inversion, ce que je ne veut pas, je veux juste inverser.

;-))
0
blux Messages postés 26537 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 317 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
27 sept. 2006 à 12:42
C'est du pur Linux ? parce que sur mon AIX 5.2, je n'ai pas la commande...
0