我正在尝试使用以下正则表达式来匹配日期,我将在更大的 awk 脚本中使用此正则表达式,但这似乎不起作用。
echo "2343-23-23"| nawk '/[0-9]{4}-[0-9]{2}-[0-9]{1,2}/'
上面的行给出了空行
另外,如何将转换后的返回结果转换为Date?我想对匹配结果进行日期比较。我最终想做类似以下的事情
echo "2016-01-01 11:12:13,234" | nawk '/[0-9]{4}-[0-9]{2}-[0-9]{1,2}/ {if(date($0) > date("2016-01-01 10:00:00,234"){print "Yes";}}'
谢谢。
最佳答案
保留您的正则表达式,但在其后添加 1
。由于 1
始终计算为 true
,因此它执行默认操作 {print $0}
。
awk '/[0-9]{4}-[0-9]{2}-[0-9]{1,2}/1' <<< 1999-05-05
对于旧版本,您可以尝试:
awk '/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/1' <<< 1999-05-05
Ideone 演示
关于regex - awk 数据匹配不起作用正则表达式 + 日期函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169268/