HDFSのパスを指定する時にワイルドカードで*
と?
が使えるのは知っている人は多いと思いますが、他にも[]
と{}
でパターンマッチングが使えるようです。
FileSystem (Apache Hadoop Main 2.6.1 API)
文字セットを指定する
$ hadoop fs -du -s /foo/bar/2016090[135]
96798001 /foo/bar/20160901
90981407 /foo/bar/20160903
102644147 /foo/bar/20160905
文字の範囲を指定する
$ hadoop fs -du -s /foo/bar/2016090[1-3]
96798001 /foo/bar/20160901
97538454 /foo/bar/20160902
90981407 /foo/bar/20160903
指定文字を除外
$ hadoop fs -du -s /foo/bar/2016090[^123]
93337378 /foo/bar/20160904
102644147 /foo/bar/20160905
101686448 /foo/bar/20160906
102165763 /foo/bar/20160907
105923690 /foo/bar/20160908
97088009 /foo/bar/20160909
文字列リストを指定する
$ hadoop fs -du -s /foo/bar/{20160901,20160902}
96798001 /foo/bar/20160901
97538454 /foo/bar/20160902