Edited at

treeコマンドの罫線をタブにする

More than 1 year has passed since last update.


はじめに

treeコマンド結果の罫線を消したいことがあります。

$ tree ./directory0

./directory0
├── directory1
│ ├── directory2
│ │ ├── directory3
│ │ └── file3
│ └── file2
└── file1

そんな時に使えるfilterを書きました。

以下のように罫線が消えてタブでインデントされます。

Excel等に貼り付けて資料化するのに便利です。

$ tree ./directory0 -J | ./filter.sh

./directory0/
directory1/
directory2/
directory3/
file3
file2
file1

以下リポジトリで公開しています。

https://github.com/loftkun/indent-filter-for-tree


for Linux


前提条件


  • jq

  • python3.x


Usage

tree [TARGET_DIRECTORY] -J | ./filter.sh


treeコマンドとの比較(再掲)

罫線が邪魔だが、、、

$ tree ./directory0

./directory0
├── directory1
│ ├── directory2
│ │ ├── directory3
│ │ └── file3
│ └── file2
└── file1

これならすっきり資料化できます。

$ tree ./directory0 -J | ./filter.sh

./directory0/
directory1/
directory2/
directory3/
file3
file2
file1
$


for Windows


前提条件


  • Windows Powershell


Usage

filterを作成。IndentFilterと命名(filter.ps1を参照)。

PS C:\test> filter IndentFilter {

% { $_ -replace "^(.*[+,\\\\]-.*)$","$&\" } |
% { $_ -replace "\| " ,"`t" } |
% { $_ -replace "\+---" ,"`t" } |
% { $_ -replace "\\---" ,"`t" } |
% { $_ -replace " " ,"`t" } |
% { If ( $_ -notmatch "`t+$" ){$_} }
}

IndentFilterを使う

tree /F /A [TARGET_DIRECTORY] | IndentFilter


treeコマンドとの比較

罫線が邪魔だが、、、

PS C:\test> tree .\directory0 /F /A

C:\TEST\DIRECTORY0
| file1
|
\---directory1
| file2
|
\---directory2
| file3
|
\---directory3
PS C:\test>

これならすっきり資料化できます。

PS C:\test> tree .\directory0 /F /A | IndentFilter

C:\TEST\DIRECTORY0
file1
directory1\
file2
directory2\
file3
directory3\
PS C:\test>