今天看到一个例子中有条语句:
date_d=$(echo $date2 |grep '[0-9]\{8\}') //判断变量date2中是否有八个连续的数字
可以通过下面的例子了解下:
例一:
#echo "123456789" |grep '[0-9]\{8\}'
输出:123456789
[0-9]:表示数字范围
{8}:表示前面的数字出现8次,正则中{ }需要转义
{1,3}:表示前面的数字出现1-3次,即:2、98、955都满足
例二:
#echo "1234gd56789" |grep '[0-9]\{8\}'
输出为空
#echo "1234gd5673432489" |grep '[0-9]\{8\}'
输出:1234gd5673432489 //由此看出必须是连续的8个数字才能满足条件
下面的例子更加容易理解:
例三:"grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'" 用于过滤IPv4地址
[0-9]{1,3} :表示数字出现1-3次; 比如:192、2、10等.:\. dot需要转义;