第17天 扩展正则符号
说明:扩展正则符号属于高级符号,只能三剑客命令中的 awk grep转换成egrep或者grep -E sed -r可以用
扩展正则符号
+:匹配加号前面一个字符,连续出现一次或多次的
练习题:验证以下信息,身份证合法性
张三: 110109199905060876
李四: oldboy
王五: 210109198807086789
[数字]+ :将连续数字字符串信息进行匹配
[字母]+ :将连续字母字符串信息进行匹配
?:匹配?号前面一个字符,连续出现0次或1次的
ps:用于匹配问号前一个字符可能出现,可能没有出现
{}:匹配花括号里面字符,连续出现指定次数
{n,m}:匹配最少出现n次,最多出现m次
{n}:匹配正好出现n次的字符串信息
{n,}:匹配最少出现n次,最多没有限制
{,m}:匹配最少出现0次,最多出现m次
( ):
作用1:将多个字符信息汇总成一个整体字符串 vs [ ]
作用2:利用sed命令进行替换时,实现后项引用前项
练习:
echo 123456 —> <12><34><56>
echo 123456 —> <123><456>
echo 123456 —> <1><2><3><4><5><6>
练习:
echo 123456 —><34><12><56>
echo 123456 —> <123><456>
| 匹配多个字符串信息
解锁
1)如何取出ip地址信息 用grep
思路1:如何显示出ip地址
思路2:显示出有ip地址的行信息
思路3:什么信息是IP地址 (四组数字以点分隔的就是IP地址),每组数字可以是一位数、个位数、三位数
练习:取出网络MAC地址
2)如何取出文件权限信息
3)如何实现批量创建用户并设置随机密码
思路1) 掌握如何创建用户 给用户设置密码 单个用户设置密码
useradd xx ;echo 密码 |passwd --stdin 用户信息
思路2) 批量创建用户并设置密码, 按照序列方式
seq -w 10|sed -r ‘s#(.)#useradd oldboy\1;echo 123456|passwd --sdtin oldboy\1#g’
echo {oldboy,oldgirl,olddog}|xargs -n1|sed -r 's#(.)#useradd \1;echo 123456|passwd --stdin \1#g’
思路3) 创建用户密码信息是随机密码
date “+%N”|md5sum |head -c 6
4)如何批量修改文件的扩展名
思路一:
单个文件修改名称
mv /rui/rui.txt /rui/rui.jpg
sed “s#(oldboy01.)txt#mv /oldboy/\1txt /oldboy/\1jpg#g”
思路二:
多个文件批量修改扩展名
ls ./|xargs -n1|sed -r 's#(.)txt#mv \1txt \1jpg#g’|bash