Příkaz „tree“ k zobrazení stromu používá pěkné znaky pro kreslení pole, ale chci použít výstup v kontextu „code-page-neutral“ (vím, že opravdu vždy existuje stránka s kódem, ale omezením na nižší znaky doufám, že se nebudu obávat, že někdo v Ulan Bator uvidí smajlíky atd.).
Například místo:
├── include │ ├── foo │ └── bar
Líbí se mi něco jako:
+-- include | +-- foo | \-- bar
ale žádná z kombinací přepínačů „stromu“, které jsem zkoušel, to nedala (zdá se to spíše, jako by jako základní linku braly znaky pro kreslení pole a byly ještě hezčí)
Také hledali filtry pro kreslení krabic, které by prováděly takové převody, aniž by našly něco přesahující nekonečné množství ASCII umění :-). Obecný filtr voní jako něco, co má být uvařeno za 15 minut – plus dva další přírůstkové dny narážející na všechny zábavné rohové případy 🙂
Komentáře
- Děkujeme za otázku. Potřeboval jsem to, abych mohl převést výstup stromu do strojopisu, abych získal kontrolu nad formátováním tisku (pomocí dprint / dprintm z mého balíčku duplexpr sourceforge.net/projects/duplexpr/. )
Odpověď
Nejsem si tím jistý, ale myslím, že vše, co potřebujete, je
tree | sed "s/├/\+/g; s/─/-/g; s/└/\\/g"
Například:
$ 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
Alternativně můžete použít --charset
možnost:
$ tree --charset=ascii . |-- file0 `-- foo |-- bar | `-- file2 `-- file1 2 directories, 3 files
Komentáře
- Tam ' s bez GNU
tree
, ' s bez Unixutree
, ' není POSIXtree
. Jedinátree
implementace I ' s vědomím, že je mama.indstate.edu/users/ice/tree . - @StephaneChazelas děkuji, takže možnost
--charset
by měla být vždy k dispozici. Odpověď upravena. - Skvělá! (zejména verze sed – pro mě sed je divoká země za hranicí awk)
- Líbí se mi možnost strom –charset = ascii, díky
- Vlastně si myslím, že
--charset
možnost – alternativa používajícísed
je poučná, ale komplikovanější …
Odpověď
A co 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
Komentáře
- To je ' stejné jako
tree --charset nwildner
- Jo. Druhá odpověď byla upravena, takže jsem si ´ nevšiml, že @terdon dal úplnější odpověď, zatímco budu psát moje;)