"tree"コマンドはクールなボックスで描かれた文字を使用してツリーを表示しますが、「コードページニュートラル」コンテキストで出力を使用したい(実際には常にコードページがあることを知っていますが、より低いコードページに制限されています))ウランバートルで笑う顔などを見ている人を心配する必要がないことを願っています。
たとえば、次のようになります。
├── include
│ ├── foo
│ └── bar
私は次のようなものが欲しい:
+-- include
| +-- foo
| \-- bar
しかし、私が試した「ツリー」スイッチの組み合わせのどれもこれを提供しません(ブロック図の文字に基づいてよりきれいにするようです)。
私もそのような変換を実行するためにブロックプロットフィルタを見つけましたが、無限の量のASCIIアート以外には何も見つかりませんでした:-).汎用フィルターは15分で作ったような臭いがします。 2日を追加すると、すべての面白いエッジケースを得ることができます:-)
答え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