'순수'(7비트) ASCII 출력을 사용한 'tree' 명령 출력

'순수'(7비트) ASCII 출력을 사용한 'tree' 명령 출력

"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

관련 정보