La commande « tree » utilise de jolis caractères de dessin de boîte pour afficher larbre mais je veux utiliser la sortie dans un contexte « neutre de page de code » (je sais quil y a toujours une page de code, mais en la limitant aux caractères inférieurs, jespère ne pas avoir à craindre que quelquun à Oulan Bator voit des visages souriants, etc.).
Par exemple au lieu de:
├── include │ ├── foo │ └── bar
Je « voudrais quelque chose comme:
+-- include | +-- foo | \-- bar
mais aucune des combinaisons de commutateurs « arborescents » que jai essayées na donné cela (on dirait plutôt quils prennent les caractères de dessin de boîte comme base et le rendent encore plus joli)
Jai aussi recherché des filtres de dessin de boîte pour effectuer de telles conversions sans rien trouver au-delà dune quantité infinie dart ASCII :-). Un filtre générique sent quelque chose à préparer en 15 minutes – plus deux jours supplémentaires pour tomber dans tous les coins amusants 🙂
Commentaires
- Merci pour la question. Jen avais besoin pour pouvoir canaliser la sortie de larbre dans enscript pour obtenir le contrôle du formatage dimpression (en utilisant dprint / dprintm de mon package duplexpr sourceforge.net/projects/duplexpr/. )
Réponse
Je ne suis pas sûr de cela mais je pense que tout ce dont vous avez besoin est
tree | sed "s/├/\+/g; s/─/-/g; s/└/\\/g"
Par exemple:
$ tree . ├── file0 └── foo ├── bar │ └── file2 └── file1 2 directories, 3 files $ tree | sed "s/├/\+/g; s/─/-/g; s/└/\\/g" . +-- file0 \-- foo +-- bar │ \-- file2 \-- file1 2 directories, 3 files
Vous pouvez également utiliser le --charset
option:
$ tree --charset=ascii . |-- file0 `-- foo |-- bar | `-- file2 `-- file1 2 directories, 3 files
Commentaires
- Il ' s pas de GNU
tree
, il ny a ' pas dUnixtree
, il ny a ' aucun POSIXtree
. La seuletree
implémentation I ' Je connais mama.indstate.edu/users/ice/tree . - @StephaneChazelas merci, donc loption
--charset
devrait toujours être disponible alors. Réponse modifiée. - Splendide! (en particulier la version sed – pour moi sed est les terres sauvages au-delà de la frontière awk)
- Jaime loption tree –charset = ascii, merci
- En fait, je pense que le
--charset
doit être mentionnée en premier – lalternative utilisantsed
est instructive, mais plus compliquée …
Réponse
Quen est-il de tree --charset unicode
?
|-- boot_print | |-- config-2.6.32-5-amd64 | |-- grub | | |-- 915resolution.mod | | |-- acpi.mod | | |-- affs.mod | | |-- afs_be.mod | | |-- afs.mod | | |-- aout.mod | | |-- ata.mod | | |-- ata_pthru.mod | | |-- at_keyboard.mod | | |-- befs_be.mod | | |-- befs.mod | | |-- biosdisk.mod | | |-- bitmap.mod | | |-- bitmap_scale.mod | | |-- blocklist.mod | | |-- boot.img
Commentaires
- Que ' est identique à
tree --charset nwildner
- Ouais. Lautre réponse a été modifiée donc, je nai ´ pas remarqué que @terdon a donné une réponse plus complète pendant que jécris la mienne;)