Inverser le contenu d'un fichier texte
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.
Commentaires
barbay (non vérifié)
mer, 28/08/2013 - 18:06
Permalien
tac
La commande TAC ne fait-elle pas la même chose?
tac /var/log/syslog
ronan
mer, 28/08/2013 - 22:45
Permalien
tac
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.
Ajouter un commentaire