"tree" 명령은 멋진 상자 그려진 문자를 사용하여 트리를 표시하지만 "코드 페이지 중립" 컨텍스트에서 출력을 사용하고 싶습니다(실제로 항상 코드 페이지가 있다는 것을 알고 있지만 더 낮은 코드 페이지로 제한함) ) 울란바토르에서 웃는 얼굴 등을 보는 사람에 대해 걱정할 필요가 없기를 바랍니다.
예를 들면 다음과 같습니다.
├── include
│ ├── foo
│ └── bar
나는 다음과 같은 것을 원합니다 :
+-- include
| +-- foo
| \-- bar
그러나 내가 시도한 "트리" 스위치 조합 중 어느 것도 이것을 제공하지 않습니다(블록 다이어그램 문자를 기준으로 삼아 더 예쁘게 만드는 것처럼 보입니다).
나는 또한 그러한 변환을 수행하기 위해 블록 플롯 필터를 찾았지만 무한한 양의 ASCII 아트 외에는 아무것도 찾지 못했습니다 :-). 범용 필터는 15분 만에 만든 것 같은 냄새가 납니다. 이틀을 추가하면 모든 재미있는 엣지 케이스를 얻을 수 있습니다 :-)
답변1
이것에 대해 잘 모르겠지만 필요한 것은 다음과 같습니다.
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
답변2
무엇에 대해 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
답변3
로케일을 변경하기 위해 다음을 시도했습니다. 또한 --charset=ascii와 마찬가지로 선 그리기를 위한 ASCII 코드를 출력합니다.
> LANG=C tree