使用awk匹配列中的字符串长度

时间:2018-04-05 11:53:38

标签: shell awk

我试图提取与日期模式相匹配的列,如: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}'

有人可以解释我为什么会发生这种情况吗?我错过了一个简单的事情吗?

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} }版本。