ツリーコマンドでのみスペースでインデントを印刷する

ツリーコマンドでのみスペースでインデントを印刷する

コマンドを使用してディレクトリのサブディレクトリを一覧表示したいと思いますtree。しかし、インデント行を印刷したくありません。ただ空白に変えたいです。

マニュアルページに正しいパラメータが見つかりません。おそらく出力をパイプしてこの行を削除することができtreeますsed

答え1

だからあなたは次のようなものが欲しい:

tree | sed 's/├\|─\|│\|└/ /g'

これらの「行」文字はすべて空白に置き換えます。


望むより:

$ tree
.
├── dir1
│   ├── file1
│   └── file2
└── dir2
    ├── file1
    └── file2

2 directories, 4 files
$ tree | sed 's/├\|─\|│\|└/ /g'
.
    dir1
        file1
        file2
    dir2
        file1
        file2

2 directories, 4 files

答え2

効果があります:

tree | sed -e 's/[├──└│]/ /g' 

答え3

インデントを表示したくない場合は、コマンド-iにフラグを追加するだけです。treesedでパイプするよりも少し簡単です!

答え4

別の(sed無料)方法は

tree | iconv -f utf8 -c -t latin1 | tr '\240' ' '

ここでは、出力をutf8からlatin1に変換します(例:ISO-8859-1、ASCIIもオプションですが、いくつかの「ウムラウト」を維持したい)。オプション-ciconv変換できない文字を自動的に削除最後に、切り捨て防止スペースを削除しました。これはあなたとは関係がないかもしれません。

警告する:UTF-8でエンコードされた文字をターゲットエンコーディングに変換できないと失われます。

関連情報