Der Befehl „tree“ verwendet nette Box-Zeichen, um den Baum anzuzeigen, aber ich möchte die Ausgabe verwenden in einem „Codepage-neutralen“ Kontext (ich weiß, dass es wirklich immer eine Codepage gibt, aber wenn ich sie auf die niedrigeren Zeichen beschränke, hoffe ich, dass ich keine Sorgen habe, dass jemand in Ulan Bator Smileys usw. sieht).
Zum Beispiel anstelle von:
├── include │ ├── foo │ └── bar 
Ich hätte gerne etwas wie:
+-- include | +-- foo | \-- bar 
, aber keine der von mir versuchten „Baum“ -Schalterkombinationen gab dies an (es scheint eher so, als würden sie die Zeichen für das Zeichnen von Kästchen als Grundlinie nehmen und sie noch schöner machen)
Ich auch suchte nach Box-Drawing-Filtern, um solche Konvertierungen durchzuführen, ohne etwas zu finden, das über eine unendliche Menge an ASCII-Kunst hinausgeht :-). Ein generischer Filter riecht nach etwas, das in 15 Minuten zubereitet werden muss – plus zwei weitere inkrementelle Tage, die in alle amüsanten Eckfälle stolpern 🙂
Kommentare
- Danke für die Frage. Ich brauchte dies, damit ich die Ausgabe des Baums in ein Enscript leiten konnte, um die Druckformatierung zu steuern (mit dprint / dprintm aus meinem duplexpr-Paket sourceforge.net/projects/duplexpr/). )
 
Antwort
Ich bin mir nicht sicher, aber ich denke, alles was Sie brauchen ist
tree | sed "s/├/\+/g; s/─/-/g; s/└/\\/g" 
Zum Beispiel:
$ 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 
 Alternativ können Sie die --charset Option: 
$ tree --charset=ascii . |-- file0 `-- foo |-- bar | `-- file2 `-- file1 2 directories, 3 files 
Kommentare
-  Dort ' s kein GNU 
tree, es gibt ' kein Unixtree, es gibt ' kein POSIXtree. Die einzigetreeImplementierung I ' Ich bin mir bewusst, dass mama.indstate.edu/users/ice/tree . -  @StephaneChazelas danke, also die Option 
--charsetsollte dann immer verfügbar sein. Antwort bearbeitet. - Herrlich! (besonders die sed-Version – für mich ist sed das wilde Land jenseits der awk-Grenze)
 - Ich mag die Option tree –charset = ascii, danke
 -  Eigentlich denke ich, dass die 
--charsetsollte zuerst erwähnt werden – die Alternative mitsedist lehrreich, aber komplizierter … 
Antwort
 Was ist mit 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 
Kommentare
-  Das ' entspricht 
tree --charset nwildner - Yup. Die andere Antwort wurde so bearbeitet, dass ich ´ nicht bemerkt habe, dass @terdon eine vollständigere Antwort gegeben hat, während ich meine geschrieben habe;)