No Programming, No Life

プログラミング関連の話題や雑記

Groovyのコマンドラインで遊んでみる

Groovyはコマンドラインからでも色々と遊べます。
ということで、Windows環境で試してみました。とりあえず、試したのは以下のオプションです。

-v または --version

display the Groovy and JVM versions
# GroovyとJava VMのバージョン情報を表示*1

バージョン表示


groovy -v

-e <script>

specify a command line script
# コマンドラインスクリプトを指定する

a.txtの内容をリダイレクトし大文字にして出力


groovy -e "println System.in.text.toUpperCase()" < a.txt

dirコマンドの結果をパイプし大文字にして出力


dir | groovy -e "println System.in.text.toUpperCase()"

-n

process files line by line using implicit 'line' variable
# 行単位に暗黙の変数lineを使って処理します

a.txtの内容をリダイレクトし大文字にして出力


groovy -n -e "println line.toUpperCase()" < a.txt

dirコマンドの結果をパイプし大文字にして出力


dir | groovy -n -e "println line.toUpperCase()"

# 行単位で処理。*2
# System.in.text と書かなくてよいので、ちょっとスッキリ。

-p

process files line by line and print result (see also -n)
# 行単位に暗黙の変数lineを使ってプリント処理をします (-nも見てね)

a.txtの内容をリダイレクトし大文字にして出力


groovy -p -e "line.toUpperCase()" < a.txt

dirコマンドの結果をパイプし大文字にして出力


dir | groovy -p -e "line.toUpperCase()"

# 行単位で処理。プリント処理に特化。*3
# print(ln) と書かなくてよいので、さらにスッキリ。

考察

とまぁ、こんな感じで手軽にコマンドラインワンライナーでも遊べるGroovyはやっぱり素敵です。
標準入力をこねくりまわして手早くどうにかしたい際に思い出して使ってみよう。

*1:「Groovy Version: 1.6.0 JVM: 1.6.0_12」みたいに出力される。

*2:AWKみたいな感じ。

*3:AWKみたいな感じ。