怎么会有这个命令
使用此命令 hadoop fs -ls -R /path/to/dir/d_20141123* | grep -oE '(.*)?\/(.*)\/'
我得到这个输出
-rw-r--r-- 2014-11-23 20:00 /path/to/dir/d_20141123-2301/
-rw-r--r-- 2014-11-23 20:00 /path/to/dir/d_20141123-2302/
-rw-r--r-- 2014-11-23 20:00 /path/to/dir/d_20141123-2303/
...
...
但与 hadoop fs -ls -R /path/to/dir/d_20141123* | grep -oE '\/(d_.*)\/'
我得到一个输出:
/d_423432-342/
/d_231314-343/
...
...
但有了这个命令: hadoop fs -ls -R /path/to/dir/d_20141123* | grep -oE '(d_\d+\-\d+)'
我没有输出。为什么?我删除的只是正则表达式中的前斜杠
1条答案
按热度按时间hts6caw31#
我删除的只是正则表达式中的前斜杠
只要。删除了正斜杠,删除了反斜杠,删除了
.*
,您添加了\d+\-\d+
.一次做一个,你会发现问题:
grep -E
不支持\d
作为[[:digit:]]
.要么重写以使用
[[:digit:]]
(即posix)或使用grep -P
(即gnu):您还可以根据您的预期输入以各种方式简化它: