Article

[Bash] : un arbre sans tree avec ls et sed

Tree est un bon outil pour pouvoir lister les directories et avoir une bonne vision d’ensemble grâce à la mise en forme d’arbre. Mais tree n’est pas installé sur toutes les machines et on ne peut pas toujours le faire ou on ne veut pas s’amuser à le faire (sur des noeuds distants…). Bref on préfère se passer de tree parfois.

Vous vous doutez bien que l’on peut le faire à coup de ls -R. Mais il faut encore le remettre en forme. Alors si on vous le propose en oneline vos prenez ? moi oui.

Voici donc la ligne de commande correspondante :

ls -R | grep ":$" |
sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

Donc :

  • un ls option récursive
  • ensuite un grep pour ne récupérer que les lignes se terminant par “:”
  • puis un sed pour faire du nettoyage et de la mise en forme (faire les branches de l’arbre)
abstract alone art black
Photo by Raine Nectar on Pexels.com
Transparence IA

Ce contenu a été partiellement rédigé ou structuré avec l aide d outils d intelligence artificielle, puis relu, corrigé et complété par l auteur avant publication.

Découvrez  [bash] : créer une fonction pour monter de 1 ou plusieurs niveaux dans une arborescence
Explorer les formations Xavki

Pour apprendre dans l ordre, repartez depuis la roadmap ou une playlist thematique.