我有以下 unix
命令,我用它来尝试在文件中查找格式为 yyyy-mm-dd
的日期:
grep -i -w [\d]{4}-[\d]{2}-[\d]{2}? <filename>
但出于某种原因,我得到了一个空洞的答案。我是否为 grep 正确匹配了正则表达式?
最佳答案
以下是有效的,使用 bash 扩展正则表达式(-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>
关于unix - 在 Unix 上匹配文件中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26416963/