コマンドを使用してディレクトリのサブディレクトリを一覧表示したいと思います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
にフラグを追加するだけです。tree
sedでパイプするよりも少し簡単です!
答え4
別の(sed
無料)方法は
tree | iconv -f utf8 -c -t latin1 | tr '\240' ' '
ここでは、出力をutf8からlatin1に変換します(例:ISO-8859-1、ASCIIもオプションですが、いくつかの「ウムラウト」を維持したい)。オプション-c
」iconv
変換できない文字を自動的に削除最後に、切り捨て防止スペースを削除しました。これはあなたとは関係がないかもしれません。
警告する:UTF-8でエンコードされた文字をターゲットエンコーディングに変換できないと失われます。