我试图提取与日期模式相匹配的列,如:YYYY-MM-DD
,但没有理解下面命令之间的区别
工作指令
echo 1,2,3,4,2015-12-34 | awk -F, '{if($5~/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$/) print $1}'
不工作命令
echo 1,2,3,4,2015-12-34 | awk -F, '{if($5~/^[0-9]{d}-[0-9]{2}-[0-9]{2}$/)print $1}'
有人可以解释我为什么会发生这种情况吗?我错过了一个简单的事情吗?
答案 0 :(得分:1)
您可以尝试关注并告诉我这是否对您有所帮助。
echo 1,2,3,4,2015-12-34 | awk --re-interval -F, '{if($5~/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/)print $1}'
<强> OR 强>
echo 1,2,3,4,2015-12-34 | awk --re-interval -F, 'match($NF,/[0-9]{4}-[0-9]{2}-[0-9]{2}/){print $1}'
注意: 我的awk
版本是旧的,因此我使用--re-interval
您可以删除它,以防您最近{{1} }版本。