Inverser le contenu d'un fichier texte

Inverser le contenu d'un fichier texte

By ronan, 22 août, 2013

Pour x raisons, il peut être nécessaire d'inverser le contenu d'un fichier texte.
Par exemple, pour afficher le contenu d'un fichier de logs dans l'ordre inverse.

Suite à la remarque de barbay, la commande tac permet d'inverser le contenu d'un fichier texte.

$ tac /var/log/syslog

Sinon, pour inverser le contenu d'un fichier texte, il est possible d'utiliser l'enchainement de commandes suivant :

Pour commencer, j'affiche le contenu du fichier avec la commande cat :

$ cat /var/log/syslog

J'enchaine avec la commande nl qui permet de numéroter les lignes du fichier :

$ cat /var/log/syslog | nl

J'enchaine avec la commande sort qui permet de trier le contenu du fichier numériquement (avec l'option -n) et en ordre inverse (avec l'option -r) sur la première colonne du fichier contenant les numéros de lignes générés par la commande nl :

$ cat /var/log/syslog | nl | sort -n -r

Il reste maintenant à supprimer la première colonne du fichier contenant les numéros de lignes avec la commande cut :

$ cat /var/log/syslog | nl | sort -n -r | cut -f2

Et voilà, le fichier s'affiche à l'écran dans l'ordre inverse.

Etiquettes

barbay (not verified)

il y a 11 ans 5 mois

La commande TAC ne fait-elle pas la même chose?
tac /var/log/syslog

ronan

il y a 11 ans 5 mois

In reply to by barbay (not verified)

Effectivement, la commande TAC effectue exactement la même chose.

Je ne la connaissais pas.

Pourquoi faire simple quand on peut faire compliqué ;o)

Merci beaucoup pour cette remarque.