Command-Line

帶有“純”(7 位)ASCII 輸出的“tree”命令輸出

  • February 23, 2021

“樹”命令使用漂亮的方框圖字元來顯示樹,但我想在“程式碼頁中性”上下文中使用輸出(我知道確實總是有一個程式碼頁,但通過將其限制在較低的我希望不用擔心烏蘭巴託有人看到笑臉等)。

例如,而不是:

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

我想要類似的東西:

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

但是我嘗試過的“樹”開關組合都沒有給出這個(似乎更像是他們將畫框字元作為基線並使其更漂亮)

我還尋找方框圖過濾器來執行此類轉換,而不會發現任何超出無限量 ASCII 藝術的東西 :-)。一個通用的過濾器聞起來像是要在 15 分鐘內煮熟的東西——再加上兩天的增量,絆倒了所有有趣的角落案例 :-)

我不確定這一點,但我認為你所需要的只是

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

怎麼樣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

引用自:https://unix.stackexchange.com/questions/127063