Het “boom” -commando gebruikt mooie teken-tekenkarakters om de boom te tonen, maar ik wil de uitvoer gebruiken in een “codepagina-neutrale” context (ik weet dat er echt altijd een codepagina is, maar door deze te beperken tot de lagere karakters hoop ik me geen zorgen te maken dat iemand in Ulan Bator smileygezichten ziet, enz.).
Bijvoorbeeld in plaats van:
├── include │ ├── foo │ └── bar
Ik “wil zoiets als:
+-- include | +-- foo | \-- bar
maar geen van de “boom” -schakelaarcombinaties die ik probeerde gaf dit (het lijkt meer alsof ze de tekentekens als basislijn nemen en het nog mooier maken).
Ik ook zocht naar box-drawing filters om dergelijke conversies uit te voeren zonder iets te vinden dat verder gaat dan een oneindige hoeveelheid ASCII-art :-). Een algemeen filter ruikt naar iets dat in 15 minuten klaargemaakt moet worden – plus nog twee oplopende dagen die in alle grappige hoekgevallen strompelen 🙂
Reacties
- Bedankt voor de vraag. Ik had dit nodig zodat ik de uitvoer van de boom in enscript kon doorsluizen om controle te krijgen over de afdrukopmaak (met behulp van dprint / dprintm uit mijn duplexpr-pakket sourceforge.net/projects/duplexpr/. )
Antwoord
Ik “weet dit niet zeker, maar ik denk dat alles wat je nodig hebt, is
tree | sed "s/├/\+/g; s/─/-/g; s/└/\\/g"
Bijvoorbeeld:
$ 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
U kunt ook de --charset
optie:
$ tree --charset=ascii . |-- file0 `-- foo |-- bar | `-- file2 `-- file1 2 directories, 3 files
Reacties
- Daar ' s geen GNU
tree
, er ' s geen Unixtree
, er ' s geen POSIXtree
. De enigetree
implementatie I ' ben me bewust van is mama.indstate.edu/users/ice/tree . - @StephaneChazelas bedankt, dus de
--charset
optie zou dan altijd beschikbaar moeten zijn. Antwoord bewerkt. - Prachtig! (vooral de sed-versie – voor mij is sed de wilde landen voorbij de awk-grens)
- Ik hou van de tree –charset = ascii-optie, bedankt
- Eigenlijk denk ik dat de
--charset
optie moet als eerste worden genoemd – het alternatief metsed
is leerzaam, maar ingewikkelder …
Answer
Hoe zit het met 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
Reacties
- Dat ' is hetzelfde als
tree --charset nwildner
- Ja. Het andere antwoord is zo bewerkt, ik heb ´ niet opgemerkt dat @terdon een vollediger antwoord gaf terwijl ik het mijne schreef;)