「Pugs」を含む日記 RSS

はてなキーワード: Pugsとは

2008-04-16

http://anond.hatelabo.jp/20080415182703

実行してみたら出力に変化がなかった。アルェー?

おっと、バグが。ちゃんとテストしてなかった。すんまそん。

# tree -pugs | perl -e '@line=<>; $max=(sort {$b<=>$a} map {/^(.*?)\[/; length($1)} @line)[0]; map {s/^(.*?)\[/$1 . " "x($max-length($1))."\["/e} @line; print @line'

毎回正規表現考えるのも面倒かなーとかとか。

理想を語ると出力形式指定できれば最強だなーとか妄想してた。

この辺は、ファイルにして ~/bin に放りこんで、自分好みに育て上げる、ってのがエロゲ^H^H^Hギーク楽しみ方かと。

雛型的には↓かなぁ。どうだろ。弾・monger・コーガイ氏が登場したら……滅多切りさるかもw

#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Std;
use vars qw($opt_t);

# オプション処理
getopts('t');
# $opt_tがセットされていたらタブ処理、ということにする。

# コマンド起動
# 引数処理とかシグナルとか面倒なところは……
open TREE, "tree -pugs ".join(" ",@ARGV,"|") or die;
my @line = <TREE>; # 富豪的にいく
close TREE; # ここで子プロセスの処理だっけ?
# それともwaitするんだっけ?

# ツリー表示部分の最大長を求める。
my $max=(sort {$b<=>$a} map {/^(.*?)\[/; length($1)} @line)[0];
# 色々やる時はユーザ名とかグループ名とかファイル名とかの最大長がいるかも

foreach (@line) {
        if ($opt_t) {
                # タブ(\t)で位置をそろえるとか……
        } else {
                s/^(.*?)\[/$1 . " "x($max-length($1))."\["/e;
        }
        print;
}

treeへのオプションの与え方とか、それによる出力の変化とか考えると、結構面倒だけど、自分用に決め打ちしとけば何とかなるでしょう。

あと、「[%p<>%u<>%g<>%s]」みたいなのはCPANに転がってたりしそうな気もするので、それを使うとか。

そんなところでなかろうか。

[追記]

http://search.cpan.org/~darren/String-Format-1.14/Format.pm というのがあった。

2008-04-15

http://anond.hatelabo.jp/20080415173401

反応してくれた人がイター!

ちょっと嬉しい。

> 別にrubyでもsedでも良いけど、正規表現で問題なくパース出来るんじゃない?

毎回正規表現考えるのも面倒かなーとかとか。

> 位置あわせでよいのかな?ほかにある?

理想を語ると出力形式指定できれば最強だなーとか妄想してた。

 --output-style "[%p<>%u<>%g<>%s] %n"

とすると

|   |-- [-rw-r--r--<>hoge<>hoge<>9108] HTTP_BAD_GATEWAY.html.var

みたいな。

別にコマンド的である必要はまったくないっす。

> # tree -pugs | perl -e '@line=<>; $max=(sort map {/(.*?)\[/; length($1)} @line)[0]; map {s/(.*?)\[/$1 . " "x($max-length($1))."\["/e} @line; print @line'

実行してみたら出力に変化がなかった。アルェー?

何にせよPerlじゃね?ってのは超同意。

とかく出力形式を指定できたら便利だなーと。

この手のディレクトリ状況調べて提出してちょ、みたいな要求はちらほらあるのですよ。

付け加えると、CSVで出してちょーみたいな要求の場合はfindとかlsとかgrepとかその辺組み合わせてどうにでもなる感じです。

ツリー構造が見える形でいろんな出力できると楽しいよね!とかちみっと思って。

http://anond.hatelabo.jp/20080415122733

BSDな人なのでtreeはしらん、とスルー気味だったけど。

|   |-- [-rw-r--r-- hoge     hoge          9108]  HTTP_BAD_GATEWAY.html.var

を前提に。

基本:そんなときのperlじゃね?

別にrubyでもsedでも良いけど、正規表現で問題なくパース出来るんじゃない?

疑問:体裁って?

位置あわせでよいのかな?ほかにある?

なんにせよ、基本的にperlじゃね?って感じで。

# tree -pugs | perl -e '@line=<>; $max=(sort map {/(.*?)\[/; length($1)} @line)[0]; map {s/(.*?)\[/$1 . " "x($max-length($1))."\["/e} @line; print @line'

かな?たぶん。

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とかブクマ次第でいろいろ更新される予定だよ。

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

2007-03-08

Haskell学習記録

Haskell学習記録(2)

前回のはこんなかんじ。

http://anond.hatelabo.jp/20070301233810

せっかくトラックバックもらったのにもう元記事きえてたよ。なんか遅くなってごめんなさい。


そんで、時間が結構とんでしまったんだけど、ひとまずasin:4797336021をパラ読み。わかりやすかった。

まだ全然身になってないので、コードを読み、書きしながら、きちんと学んでいこう。

そんでこれからの教材なんだけど、やっぱトラバにある通りなんか公開されてるものがいいよね。

Pugsでも読んで勉強しようかな。なんかいいのありますかね?


参考書としてはhttp://www.sampou.org/cgi-bin/haskell.cgiがいいのかな。

でも前ちょっと見たときは、「やさしい」なのに全然やさしくなくて悲しかったよ(泣

「ふつうの」がちょっと高いけどいいんじゃないかなーと思った。

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