今日小练习
1.04101802001-04101802043正则表达式匹配
2.ipv4地址,邮箱地址,8位强密码,url正则表达式
3.sed命令使用:
地址定界和编辑命令的使用,:
#: d命令
i \text命令
c \text命令
#,#: p命令
#~#: s/pattern/string
#,+N: s/pattern/string/g
#,~N: d命令
$:d命令
/regexp/ : a \text
#,/regexp/ : s/pattern/string/g
/regexp/, /regexp/: s/pattern/string/g
使用正则表达式匹配 04101802001-04101802043
代码如下所示,找到数据中的规律,发现开头固定,所以使用^表示以041018020作为开头,再使用$为末尾,表示固定位数,中间的表示后两位的取值为00-43
#!/bin/bash
#########################
#File name:regexp_script_number.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-08-26 21:17:14
#Description:
#########################
echo $1 | grep -oP ^041018020\([0-3][0-9]\|4[0-3]\)$
结果如下:
只有当所输入的值在区间内时才会显示
ipv4地址,邮箱地址,8位强密码,url正则表达式
ipv4地址
将每段ip分为0-9,10-99,100-199,200-249,250-255五个部分,前三段有.为一个整体进行重复,最后一段没有点,最后以$固定长度
echo $1 |egrep "((1[0-9]{2}\.)|(2[0-4][0-9]\.)|(25[0-5]\.)|([1-9][0-9]\.)|([0-9])\.){3}((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])|([1-9][0-9])|([0-9]))$"
结果如图
邮箱地址
将邮箱分为两部分,@之前的随机位和@后面的固定位,拿QQ邮箱为例,后面格式固定,则只需要匹配前方数字部分,QQ的号码五位开始,则前方数字最短匹配5位:
#!/bin/bash
#########################
#File name:regexp_script_mail.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-08-26 15:06:27
#Description:
#########################
echo $1 |grep -E "[[:digit:]]{5,}@qq\.com$"
结果如下:
8位强密码
表示匹配8位密码,包含数字和字母大小写和符号