Rでもワンライナーでエロいことやりたい!!

エロいかは分からないけど、Rもワンライナーで使えると便利だなと思った。Perlとかでもいいけど、分散とかそういうの計算させるにはRとかのほうが便利だと思うし。Rのワンライナーは例えばこんな風にできる。

R -q -e 'mean(c(1:100)^2)'

これはこれで便利だけど、ただの電卓なのでコマンドラインから何か引数もらって計算させることにした。とりあえずカレントディレクトリにあるファイルのバイト数の平均と分散をRに計算させました><。

find -type f -printf "%s\n" | xargs R -q -e 'x <- as.numeric(commandArgs()[6:length(commandArgs())]);sprintf("Mean is %5.0f,variance is %10.0f",mean(x),var(x))' --args
> x <- as.numeric(commandArgs()[6:length(commandArgs())]);sprintf("Mean is %5.0f,variance is %10.0f",mean(x),var(x))
[1] "Mean is 14755,variance is 2740319220"
>

時には何の役に立つか分からないようなのも大切だよね、きっと><

ついでにいろいろメモ。findの-printfはいろいろ取ってこれるらしい。

find -type f -printf "%P %s\n" | perl -ane 'printf("%s bite size is %d.\n",$F[0],$F[1])'