groovy

最近、ちょこちょこgroovyでスクリプトを書いてみることにしている。rubyとかと比べて参考書籍が少ないのが難点だけど、Javaとの親和性の高さから、あれどーなってたっけ?系の、ちょっとしたテストにはかなり便利。

多分、もっと修行すると短くなるんだろうけど、現時点ではJavaチックにしか書けない。恥ずかしいけどコード晒しておきます。

えーっと、Tracでは、チケットのレポートをtab-delimitedなテキストデータとしてダウンロードすることができますが、そのまま、Excelとかに読み込ませても、作成日などがepochからの経過秒数となっているため、何のこっちゃら?となってしまいます。それをフツーのフォーマットに変換する…のが以下のコードです。

awkとかで書いた方が短くなりそうな気もするけど、練習と言うことで…。

import java.text.SimpleDateFormat

df = new SimpleDateFormat("yyyy/MM/dd")
System.in.eachLine {
	matcher = it =~ "(([^\\t]*\\t){13})(\\d+)\\t(\\d+)(.*)"
	if (matcher.matches()) {
		created = df.format(new Date(Long.parseLong(matcher.group(3).trim()) * 1000))
		modified = df.format(new Date(Long.parseLong(matcher.group(4).trim()) * 1000))
		println matcher.group(1) + created + "\t" + modified + matcher.group(5)
	} else {
		println it
	}
}