HDFSを参照する時のパスにパターンマッチングを使用する


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