2008-04-15

linuxtreeコマンドの出力をかっこよくできないかなの巻

便利すぐる!とか思ったんだけど、オプション次第では出力がちょっと汚い。

これってうまいこと成形できないかな。かな。

とりあえずオプションは-pugsくらいでおk

treeって何よ?

これ。

http://arbolbell.jp/tools/2007/11/linux-tree.html

使ってみた

[root@localhost www]# tree

.
|-- cgi-bin
|-- error
|   |-- HTTP_BAD_GATEWAY.html.var
|   |-- HTTP_BAD_REQUEST.html.var
|   |-- HTTP_FORBIDDEN.html.var
|   |-- HTTP_GONE.html.var
|   |-- HTTP_INTERNAL_SERVER_ERROR.html.var
|   |-- HTTP_LENGTH_REQUIRED.html.var
|   |-- HTTP_METHOD_NOT_ALLOWED.html.var
|   |-- HTTP_NOT_FOUND.html.var
|   |-- HTTP_NOT_IMPLEMENTED.html.var
|   |-- HTTP_PRECONDITION_FAILED.html.var
|   |-- HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|   |-- HTTP_REQUEST_TIME_OUT.html.var
|   |-- HTTP_REQUEST_URI_TOO_LARGE.html.var
|   |-- HTTP_SERVICE_UNAVAILABLE.html.var
|   |-- HTTP_UNAUTHORIZED.html.var
|   |-- HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|   |-- HTTP_VARIANT_ALSO_VARIES.html.var
|   |-- README
|   |-- contact.html.var
|   |-- include
|   |   |-- bottom.html
|   |   |-- spacer.html
|   |   `-- top.html
|   `-- noindex.html
|-- html以下略

こんな感じで出してくれる。超便利。

何したいのさ?

オプションつけると付加情報も表示してくれるんだけど、

[root@localhost www]# tree -pugs

.
|-- [drwxr-xr-x hoge     hoge          4096]  cgi-bin
|-- [drwxr-xr-x hoge     hoge          4096]  error
|   |-- [-rw-r--r-- hoge     hoge          9108]  HTTP_BAD_GATEWAY.html.var
|   |-- [-rw-r--r-- hoge     hoge          6633]  HTTP_BAD_REQUEST.html.var
|   |-- [-rw-r--r-- hoge     hoge         11193]  HTTP_FORBIDDEN.html.var
|   |-- [-rw-r--r-- hoge     hoge         12700]  HTTP_GONE.html.var
|   |-- [-rw-r--r-- hoge     hoge         12846]  HTTP_INTERNAL_SERVER_ERROR.html.var
|   |-- [-rw-r--r-- hoge     hoge          7539]  HTTP_LENGTH_REQUIRED.html.var
|   |-- [-rw-r--r-- hoge     hoge          6773]  HTTP_METHOD_NOT_ALLOWED.html.var
|   |-- [-rw-r--r-- hoge     hoge         13255]  HTTP_NOT_FOUND.html.var
|   |-- [-rw-r--r-- hoge     hoge          6336]  HTTP_NOT_IMPLEMENTED.html.var
|   |-- [-rw-r--r-- hoge     hoge          6565]  HTTP_PRECONDITION_FAILED.html.var
|   |-- [-rw-r--r-- hoge     hoge          7802]  HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|   |-- [-rw-r--r-- hoge     hoge          7099]  HTTP_REQUEST_TIME_OUT.html.var
|   |-- [-rw-r--r-- hoge     hoge          7103]  HTTP_REQUEST_URI_TOO_LARGE.html.var
|   |-- [-rw-r--r-- hoge     hoge          7822]  HTTP_SERVICE_UNAVAILABLE.html.var
|   |-- [-rw-r--r-- hoge     hoge         13035]  HTTP_UNAUTHORIZED.html.var
|   |-- [-rw-r--r-- hoge     hoge          6353]  HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|   |-- [-rw-r--r-- hoge     hoge          7009]  HTTP_VARIANT_ALSO_VARIES.html.var
|   |-- [-rw-r--r-- hoge     hoge          1979]  README
|   |-- [-rw-r--r-- hoge     hoge          4256]  contact.html.var
|   |-- [drwxr-xr-x hoge     hoge          4096]  include
|   |   |-- [-rw-r--r-- hoge     hoge           291]  bottom.html
|   |   |-- [-rw-r--r-- hoge     hoge             9]  spacer.html
|   |   `-- [-rw-r--r-- hoge     hoge           969]  top.html
|   `-- [-rw-r--r-- hoge     hoge          5043]  noindex.html
|-- [drwxr-xr-x hoge     hoge          4096]  html以下略

いまいちかっちょわるい。

体裁とか好きなようにいじれたらそのまま書類にできるんだけどなーと。

欲しいものをまとめると

http://anond.hatelabo.jp/20080415182703

てな感じです。

とある増田さん@エロゲ^H^H^Hギークの回答

http://anond.hatelabo.jp/20080416071526

雛型をtreetest.plとして保存して動かすとこんな感じになりました。

[root@localhost www]# perl ./treetest.pl

.
|--                                             [drwxr-xr-x hoge     hoge          4096]  cgi-bin
|--                                             [drwxr-xr-x hoge     hoge          4096]  error
|   |--                                         [-rw-r--r-- hoge     hoge          9108]  HTTP_BAD_GATEWAY.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6633]  HTTP_BAD_REQUEST.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         11193]  HTTP_FORBIDDEN.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         12700]  HTTP_GONE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         12846]  HTTP_INTERNAL_SERVER_ERROR.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7539]  HTTP_LENGTH_REQUIRED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6773]  HTTP_METHOD_NOT_ALLOWED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         13255]  HTTP_NOT_FOUND.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6336]  HTTP_NOT_IMPLEMENTED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6565]  HTTP_PRECONDITION_FAILED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7802]  HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7099]  HTTP_REQUEST_TIME_OUT.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7103]  HTTP_REQUEST_URI_TOO_LARGE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7822]  HTTP_SERVICE_UNAVAILABLE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         13035]  HTTP_UNAUTHORIZED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6353]  HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7009]  HTTP_VARIANT_ALSO_VARIES.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          1979]  README
|   |--                                         [-rw-r--r-- hoge     hoge          4256]  contact.html.var
|   |--                                         [drwxr-xr-x hoge     hoge          4096]  include
|   |   |--                                     [-rw-r--r-- hoge     hoge           291]  bottom.html
|   |   |--                                     [-rw-r--r-- hoge     hoge             9]  spacer.html
|   |   `--                                     [-rw-r--r-- hoge     hoge           969]  top.html
|   `--                                         [-rw-r--r-- hoge     hoge          5043]  noindex.html
|--                                             [drwxr-xr-x hoge     hoge          4096]  html以下略

ステキすぐる。

これを元にいろいろいぢくればcodereposでコミっても怒られないものができそう。

Format.pmもかなり使えそうと言うか僕の要求ずばりですよ。

感謝感激猫ひろし

このエントリTBとかブクマ次第でいろいろ更新される予定だよ。

エントリ自体がスルーされたら泣きながらどっか行くつもりだったけどスルーされなかったのでどっかには行かないよ。

記事への反応 -
  • 人力検索行った方がいぐね?

  • 元増田。 人力検索だと後で見にくくないかなーと思ってさ。 エントリ自体いろいろ書き換えていいエントリにしていけば後で見やすいかなーとか。 まあこのままスルーされそうな勢い...

  • BSDな人なのでtreeはしらん、とスルー気味だったけど。 | |-- [-rw-r--r-- hoge hoge 9108] HTTP_BAD_GATEWAY.html.var を前提に。 基本:そんなときのperlじゃね? 別にrubyでもsedでも良いけど、...

    • 反応してくれた人がイター! ちょっと嬉しい。 > 別にrubyでもsedでも良いけど、正規表現で問題なくパース出来るんじゃない? 毎回正規表現考えるのも面倒かなーとかとか。 > 位...

      • 実行してみたら出力に変化がなかった。アルェー? おっと、バグが。ちゃんとテストしてなかった。すんまそん。 # tree -pugs | perl -e '@line=<>; $max=(sort {$b<=>$a} map {/^(.*?)\[/; le...

        • 元増田。 動かしてみて感動した! かなりいい感じ。雛型超感謝ですよー。 Format.pmも役に立ちそう。 というわけで早速元エントリ更新するお!

        • 元増田。 動かしてみて感動した! かなりいい感じ。雛型超感謝ですよー。 Format.pmも役に立ちそう。 というわけで早速元エントリ更新するお!

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん