読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

AWKっぽい操作をRubyの構文でやるCLIツール「gr8」 その7:grep

gr8のgrepメソッドはlazyでgrepコマンドとawkを合わせた挙動を同時に実行できます。

$ ls | gr8 'grep(/(.+)(\.png)$/) {|s| printf "cp %16s %16s", "#{$1}.png", "img/#{$1.upcase}.jpg"}' 
cp          ceo.png      img/CEO.jpg
cp   system_sol.png img/SYSTEM_SOL.jpg
$ ls | gr8 'grep(/(.+)(\.png)$/) {|s| printf "cp %16s %16s", "#{$1}.png", "img/#{$1.upcase}.jpg"}' | sh

$ ls img/
CEO.jpg  SYSTEM_SOL.jpg

残念ながら、以下のようにLazyになってるので……後付けのwith_indexやwith_objectはうまく動かないようです

$ ls | gr8 'grep(/(.+)(\.png)$/).class' 
Enumerator::Lazy

参考もと