La commande du mois : afficher tout le texte


Sous linux, cette commande affiche récursivement le contenu de tous les fichiers texte à partir du répertoire courant, en évitant soigneusement les fichiers binaires :

grep -Irh ^

Explication

L'option -I permet de sélectionner uniquement les fichiers texte. L'option -r permet de visiter récursivement tous les sous répertoires. L'option -h éviter de précéder chaque du nom du fichier dont elle est extraite.

Le motif ^ indique un début de ligne. Par définition ce motif est présent dans chaque ligne de n'importe quel fichier. Au final, ça dit bien : "afficher récursivement chaque ligne de chaque fichier texte".


Variante

Pour lister le nom des fichiers texte plutôt que leur contenu, utilisez l'option -l plutôt que -h.

L'option -l affiche une seule fois le nom de chaque fichier qui contient au moins une fois le motif. Mnémotechnique: Irl ça sonne comme dans "In Real Life"

grep -Irl ^ 

Application

Connaître la proportion en pourcentage de fichiers textes dans une hiérarchie de répertoires :

echo "$(bc <<< $(grep -Irl ^ | wc -l)*100/$(grep -rl ^ | wc -l))%"



Ah les grep de Bretagne !

Aucun commentaire: