“ tree ”コマンド出力と“純粋な”(7ビット)ASCII出力

「tree」コマンドは、きれいな罫線素片を使用してツリーを表示しますが、出力を使用したい「コードページニュートラル」コンテキストで(実際にはコードページが常に存在することはわかっていますが、それを下の文字に制限することで、Ulan Batorの誰かが笑顔を見る心配がないことを願っています)。

たとえば、次の代わりに:

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

次のようにします:

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

しかし、私が試した「ツリー」スイッチの組み合わせはどれもこれを与えませんでした(ボックス描画文字をベースラインとして取り、それをさらに美しくするように見えます)

私も無限の量のASCIIアートを超えるものを見つけることなくそのような変換を実行するためのボックス描画フィルターを探しました:-)。一般的なフィルターは、15分で調理されるもののようなにおいがします。さらに、さらに2日間、すべての面白いコーナーケースに遭遇します:-)

コメント

回答

これについてはよくわかりませんが、必要なのは

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 

または、

オプション:

$ 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フロンティアを超えた荒野です)
  • ツリー–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がより完全な回答をしたことに気づきませんでした;)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です