[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

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s