OneLiner

指定ディレクトリ以下のファイルサイズの合計を取得するワンライナー

あるディレクトリ以下にあるファイルのサイズの合計を知りたいとき。 MacならFinderから右クリック→「情報を見る」で知ることはできるのだけど、コマンドから知ることはできるのだろうか?と調べてみた。 ディレクトリ中のファイルサイズ合計値を バイト表示…

閏年判定ワンライナー

久々のワンライナーネタ。 http://d.hatena.ne.jp/minsaa/20090406/1238987334を読んでて思いついたので。 以下、グレゴリオ暦を使うという前提で。 条件分岐を連ねるならPerlでは三項演算子かな?閏年のときだけ1を返すようにしてみた。 perl -le 'print +(…

フィボナッチ数ワンライナー

これは自分ではなかなか思いつきそうにない。 Rubyがわからない - Cozy Ozy より $ perl -le'print$a+=$!=$a-$!for--$!..-2+pop' 10 1 1 2 3 5 8 13 21 34 55 NMTnet|404 Not Found エラー より $ perl -le'print$"=($a+=$")-$"for++$a..pop' 10 1 1 2 3 5 …

Perlの順列生成ワンライナーを考える

例題: 同じ数字が2回以上現れない、4桁の数字を羅列する(最上位桁が0でもOK) …というのを考える。 その個数は、順列 から求められるので、この場合は10×9×8×7=5040個の数字列が現れることになる。 順列を生成するスクリプト では実際に5040個の数字列を…

はてブの被ブックマーク件数の合計を取得するワンライナー

perl -MXMLRPC::Lite -le'print XMLRPC::Lite->proxy("http://b.hatena.ne.jp/xmlrpc")->call("bookmark.getTotalCount",pop)->result;'引数にURLを指定。 指定したURLでの、全体の合計被ブックマーク件数が取得できるらしい。 $ perl -MXMLRPC::Lite -le'pr…

16進数のテーブルを表示するワンライナーを考える

以下のような256個の16進2桁の数値を一覧表示したい、とする。 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B …

16進数のテーブルを表示するワンライナーを考える まとめ

16進数のテーブルを表示するワンライナーを考える - すぎゃーんメモのまとめ。追記しまくって長くなったので整理する。 ()内はperlコマンドも含めた文字数。 (52)最もオーソドックスにfor文を回して文字列連結する方法 perl -le'for$i(@a=(0..9,A..F)){print…

コミッタ毎のコミット数を集計するワンライナー

$ svn log | grep ^r[0-9] | perl -MYAML -anle '$h{$F[2]}++;END{print Dump\%h}'別にYAMLのDumpじゃなくてData::DumperのDumperを使ってもよい。

モンテカルロ法で円周率を求めるワンライナー

何故か円周率ネタの続き。 簡単なのだったらワンライナーで書けるかなーと思って。 $ perl -le '(rand)**2+(rand)**2<1&&$x++for 1..($n=100000000);print$x*4/$n' 3.14167476この回数で実行に1分くらいかかって精度は3〜4桁程度。ふむー 追記 収束してい…

何かの画像をワンライナーとか何かで取得する

もしも、世界のどこかに毎分ごとに"HHMM.jpg"の形式で1440枚の画像ファイルが公開されていたりしたら、一気に取得したくなりますよね! そんなときにはワンライナーでサクっと取ってしまいましょう。 $ for i in $(echo 0{0..9}{0..5}{0..9} {10..23}{0..5}{…

美人時計の画像ファイルを平和的に取得する

美人時計の画像ファイルをワンライナーで取得する - すぎゃーんメモと同様、 この記事は削除しました。 メモしておきたいのは、 wgetで待ち時間を指定できるということ、 $ wget --help ...(略) ダウンロード: ...(略) -w, --wait=SECONDS ダウンロード毎に …

美人時計の画像ファイルをワンライナーで取得する

この記事は削除しました。 メモしておきたいのは、 zshを使えばゼロパディングしてブレース展開できるらしい。ということ。 % echo {00..12} 00 01 02 03 04 05 06 07 08 09 10 11 12

Sierpinski triangleワンライナー その3

Sierpinski triangleワンライナー その2 - すぎゃーんメモの続き。 Combination(n, m)が奇数になるための必要十分条件について 組合せ (数学) - Wikipediaより というように、とを二進展開したとき、 であることがが奇数であることの必要十分条件になってい…

Twitterで指定したIDの投稿日時を取得するワンライナー

webで見る限りでは1日以上経たないと"〜時間前"などアバウトな時間で、1日経ったあとでも分単位でしか表示されない。 でもそれぞれの発言はURLにstatusのIDが振られているので、そのIDを使えば秒単位までの正確な時間はAPI経由で取得できる。 $ perl -MDat…

Sierpinski triangleワンライナー その2

Sierpinski triangleワンライナー - すぎゃーんメモの続き。 アルゴリズムの意味を自分なりに汲み取って書き換えてみた。 $ perl -le 'print map { ~$n & $_ ? "." : "#" } 0..($n = $_ - 1) for 1..2**pop' 6 # ## #.# #### #...# ##..## #.#.#.# ######## …

GenesisLightningTalks発表順ワンライナー(?)

$ perl -MLWP::Simple -MEncode -C2 -le'print decode"euc-jp",splice@a,rand@a,1for 1..(@a=get("http://wiki.somethingnew2.com/lt/index.php?Events%2F2009%2F02")=~m|style_table.*?((?:<tr>.*?</tr>){8})|&&map{s|<.*?>||g;$_}grep{!($a++%8-1)&&$b++}$1=~m|<td.*?>.*?</td>|…

Sierpinski triangleワンライナー

perldoc Acme::EyeDrops から引用。 こういう図形のことはしっていたけど、こういう名前だったのか。 シェルピンスキーのギャスケット - Wikipedia $ perl -le '$x=2**pop;print$"x--$x,map$x&$_?$"x2:"/\\",0..$y++while$x' 4 /\ /\/\ /\ /\ /\/\/\/\ /\ /\…

1行自己紹介

$ perl -le 'print $~^" !#64:"'どうせ反則ならこれでいいかw

マジカルインクリメントによる文字列操作

$ perl -le '$~++for 0..515937;print lc$~'というのを一行自己紹介として使ってみるというのはどうだろう。 '$~'をSTDOUTとして使うのは反則かな。 追記 こんなのとか? perl -le '($_||="\163"x6)++while$a++<706623;print' 変なところから文字列を持って…

ワンライナー記号化スクリプトを書いた

何かの拍子にこの記事を見かけてしまい、衝撃を受けた。 2006-11-07 - 兼雑記 Perlってこんな変態プログラムが書けてしまうのか…!!と。 記号だけでプログラムが書けてしまうとは全然知らなかった。 何度も読み返してようやく理解した範囲では、 拡張正規表…

素因数分解ワンライナー記号編 その1

とりあえず1つできた!! $ perl -e '""!~("(?{\$*=".("/@^{_^)@/"^"_/.@/,@.[")."\$;,(\$*/=\$;)-!\$??\"*\":\$/".("^()@>{@]`][[/"^")@@,[_{`;:)>_")."{!(\$*%\$_)}!\$?..\$*]->[!\$?]})")' 2009 7*7*41150文字を超えてしまったので、もうすこし短くでき…

現在時刻を表示する記号ワンライナー

$ perl -le '""!~("(?{".("_/)./~^=_,_^},@=!@*@@;"^"/]@@[^-^>@>,]@/^@,^)-^")."})")'とてもこんなコマンドがマトモに動くようには見えないのに…Perlすげー

はじめての暗号ワンライナー

はじめてのHello world!! $ perl -e '""!~("(?{".("^_)@]@}(_,@/~)@,@;~~<@|"^".-@.)`_`:@,@^^/^,___`.^")."})")' Hello world!!ワンライナーでやろうとすると色々制限が増えて面倒っぽい。

イイネワンライナー

$ perl -MLWP::Simple -MJSON -C2 -e '@f = @{$_->{favorites}} and print $_->{text}, $/, join($", @f),$/ for @{decode_json(get "http://api.wassr.jp/statuses/user_timeline.json?id=" . pop)}' <Wassr ID>何も出力されないとちょっと悲しい。</wassr>

素因数分解ワンライナーの作り方 その3

素因数分解ワンライナーの作り方 その1 - すぎゃーんメモ 素因数分解ワンライナーの作り方 その2 - すぎゃーんメモ の続き。最後の方法はCPANモジュールを使うもの。 探してみたけど素因数分解ができそうなのは Math::Big::Factors というモジュールくらい…

素因数分解ワンライナーの作り方 その2

素因数分解ワンライナーの作り方 その1 - すぎゃーんメモの、続き。 前回はワンライナーの中でサブルーチンを定義し、それを再帰的に呼び出すことによって素因数分解を行っていた。 これを、サブルーチンの再帰呼び出しを使わずに表現することはできないか…

素因数分解ワンライナーの作り方 その1

以前に自分が書いたワンライナーについて聞かれたのに答えられなかったので反省して、どうやって考えたのかを整理しつつもう一度作り直してみる。 まず素因数分解のプログラムの流れ。 対象の数の素因数を探す 具体的には、2から初めて小さい順に割り切れる…

連想配列の中身をワンライナーで読みやすくdumpしたい

連想配列(ハッシュ)の中身を表示させるとき。普通はData::Dumperモジュールを使って表示すると思う。 $ perl -MData::Dumper -e 'print Dumper { key1 => "value1", key2 => "value2" }' $VAR1 = { 'key2' => 'value2', 'key1' => 'value1' }; でも、コレっ…

編集中のファイルを一気にバッファに開く

$ for i in $(svn st | grep ^[MA] | perl -alne 'print $F[1]'); do open -a /Applications/Emacs.app/ $i; doneelispとか使いこなせればこんなことしなくてもいいのかな…?

httpでデータを受信して処理するワンライナー

今までずっと $ perl -MLWP::Simple -MJSON -e 'print decode_json(get "http://***.com/***.json")'みたいなカンジで書いてたけど、わざわざモジュールでhttpのgetをしなくても他のコマンドを使う方法があることを知った。 たとえば、Macなら"curl"というコ…