“ boom ” opdrachtuitvoer met “ pure ” (7-bit) ASCII-uitvoer

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 Unix tree, er ' s geen POSIX tree. De enige tree 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 met sed 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;)

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *