“ tree ” 명령 출력 (“ 순수 ” (7 비트) ASCII 출력

“tree”명령은 멋진 상자 그리기 문자를 사용하여 트리를 표시하지만 출력을 사용하고 싶습니다. “코드 페이지 중립적”컨텍스트에서 (실제로는 항상 코드 페이지가 있다는 것을 알고 있지만 낮은 문자로 제한함으로써 Ulan Bator에있는 누군가가 웃는 얼굴 등을 보는 등의 걱정에서 벗어날 수 있기를 바랍니다.)

예 : 대신 :

├── include │ ├── foo │ └── bar 

다음과 같은 것을 원합니다.

+-- include | +-- foo | \-- bar 

하지만 제가 시도한 “트리”스위치 조합 중 어떤 것도 이것을주지 않았습니다 (박스 드로잉 문자를 기준으로 삼아 더 예쁘게 만드는 것처럼 보임)

나도 무한한 양의 ASCII 아트 이상을 찾지 않고 이러한 변환을 수행하는 상자 그리기 필터를 찾았습니다. :-). 일반 필터는 15 분 안에 요리 할 수있는 냄새가납니다. 2 일이 더 지나면 모든 재미있는 코너 케이스에 걸려 넘어집니다. 🙂

댓글

답변

확실하지 않지만 필요한 것은

tree | sed "s/├/\+/g; s/─/-/g; s/└/\\/g" 

예 :

$ 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 

또는 --charset 옵션 :

$ tree --charset=ascii . |-- file0 `-- foo |-- bar | `-- file2 `-- file1 2 directories, 3 files 

댓글

  • 있습니다 ' GNU가 없음 tree, 거기에 ' Unix가 없습니다. tree, 거기에 ' POSIX가 없습니다. tree. 유일한 tree 구현 I ' mama.indstate.edu/users/ice/tree 는 알고 있습니다.
  • @StephaneChazelas 감사합니다. --charset 옵션 그때 항상 사용할 수 있어야합니다. 답변이 수정되었습니다.
  • 훌륭합니다! (특히 sed 버전-저에게 sed는 awk 국경 너머의 야생 땅입니다.)
  • 나는 tree –charset = ascii 옵션을 좋아합니다. 감사합니다
  • 사실 --charset 옵션을 먼저 언급해야합니다. sed를 사용하는 대안은 유익하지만 더 복잡합니다 …

답변

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 

댓글

  • '는 tree --charset nwildner와 동일합니다.
  • 네. 다른 답변은 수정되었으므로 ´ 내가 내 글을 쓰는 동안 @terdon이 더 완전한 답변을 준 것을 알지 못했습니다.)

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다