我有以下的unix
命令,我用它来尝试在文件中找到格式为yyyy-mm-dd
的日期:
grep -i -w [\d]{4}-[\d]{2}-[\d]{2}? <filename>
但出于某种原因,我得到了一个空答案。我是否正确匹配了grep的正则表达式?
-E
,--extended-regexp
):grep -E -i -w "[0-9]{4}-[0-9]{2}-[0-9]{2}" <filename>
但是,在这种情况下,你应该使用[0-9]
而不是\d
。
如果您想使用\d
,则需要指定PERL正则表达式(-P
,--perl-regexp
):
grep -P -i -w "\d{4}-\d{2}-\d{2}" <filename>
grep -oP '\d{4}-\d{2}-\d{2}' file
或者
$ grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}' file
或者
grep -o '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}' file