山頭火スクリプト

http://genzou-postit.blogspot.com/2008/10/groovyorg.html
Groovyでどう書く.org(二番煎じバージョン) - uehaj's blog

週末に出張帰りの新幹線内でやってみた。ほっとんどgroovyをテキスト処理に使っていない(自分のなかではjarとの糊)ので、そんなにいいもんでもないかもしれません。

def ret = []
new File("data.tsv").splitEachLine(/\t/){
  ret << [it[0],it[2],it[1],(it[3].isNumber())? it[3].toInteger()+1:it[3]]
}
println ret.remove(0).join("\t")
ret.sort(){it[0].toInteger()}.each(){println it.join("\t")}

$_とか$.みたいな特殊変数風なものとか、業務でテキスト処理ってるrubyだとString.join("\n")の短縮形であるString#*みたいなショートハンドみたいなものとかがgroovyにあるかどうかってのも分からないし、printlnを複数回も動かしてるしで、単純に短くした感だけがあって雑だなーなどと自分でも思ってしまう始末です。

けど種田山頭火っぽくないですか? 行間が。出張とはいえ旅先で書いたし(自分でいうな)。

つかリスト作ってどーにかするって発想がどーしたってやめられないのがスクリプト俳人という自分の宿命。