“tree”명령은 멋진 상자 그리기 문자를 사용하여 트리를 표시하지만 출력을 사용하고 싶습니다. “코드 페이지 중립적”컨텍스트에서 (실제로는 항상 코드 페이지가 있다는 것을 알고 있지만 낮은 문자로 제한함으로써 Ulan Bator에있는 누군가가 웃는 얼굴 등을 보는 등의 걱정에서 벗어날 수 있기를 바랍니다.)
예 : 대신 :
├── include │ ├── foo │ └── bar
다음과 같은 것을 원합니다.
+-- include | +-- foo | \-- bar
하지만 제가 시도한 “트리”스위치 조합 중 어떤 것도 이것을주지 않았습니다 (박스 드로잉 문자를 기준으로 삼아 더 예쁘게 만드는 것처럼 보임)
나도 무한한 양의 ASCII 아트 이상을 찾지 않고 이러한 변환을 수행하는 상자 그리기 필터를 찾았습니다. :-). 일반 필터는 15 분 안에 요리 할 수있는 냄새가납니다. 2 일이 더 지나면 모든 재미있는 코너 케이스에 걸려 넘어집니다. 🙂
댓글
- 질문 해 주셔서 감사합니다. 인쇄 형식을 제어하기 위해 트리의 출력을 enscript로 파이프 할 수 있도록이 기능이 필요했습니다 (duplexpr 패키지 sourceforge.net/projects/duplexpr/에서 dprint / dprintm 사용). )
답변
확실하지 않지만 필요한 것은
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이 더 완전한 답변을 준 것을 알지 못했습니다.)