shell第六天

题目需求:

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

过程:

1.04101802001-04101802043正则表达式匹配

[root@localhost test]# echo "04101802001" | egrep "^041018020(0[1-9]|[1-3][0-9]|4[0-3])$"
04101802001
[root@localhost test]# echo "04101802043" | egrep "^041018020(0[1-9]|[1-3][0-9]|4[0-3])$"
04101802043
[root@localhost test]# echo "04101802041" | egrep "^041018020(0[1-9]|[1-3][0-9]|4[0-3])$"
04101802041

2.ipv4地址,邮箱地址,8位强密码,url正则表达式

QQ邮箱地址:123456789@qq.com

示例:

[root@haha ~]# echo "123456789@qq.com" | egrep "(^[1-9]*[1-9][0-9]*)@qq.com$"
123456789@qq.com
 

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

[root@localhost test]# cat mask.txt
hello zhangsan
hello lisi
hello wangwu
hello li'ergouzi
验证一下:
1、d删除匹配的某一行
[root@localhost test]# sed '/lisi/d' mask.txt
hello zhangsan
hello wangwu
hello li'ergouzi
 
 
3、p命令打印当前模式空间内容  
[root@localhost test]# sed -n '1,$p' mask.txt
hello zhangsan
hello lisi
hello wangwu
hello li'ergouzi
注:-n -n参数后,则只有经过sed特殊处理的那一行才会被
列出来;
'1,$p' 表示第一行开始到最后一行打印出来
4、s/pattern/string/g 替换内容
[root@localhost test]# sed  's/lisi/LISI/g' mask.txt
hello zhangsan
hello LISI
hello wangwu
hello li'ergouzi
 
 
5、指定文件中哪一行进行替换,利用#(数字)
[root@localhost test]# sed '3 s/hello/HI/' mask.txt
hello zhangsan
hello lisi
HI wangwu
hello li'ergouzi
6,删除mask.txt中第2行到末尾行中所有的hello
[root@localhost test]# sed '2,$s/hello//g' mask.txt
hello zhangsan
 lisi
 wangwu
 li'ergouzi
7、删除hello.txt中2到4行中所有的i
 
[root@localhost test]# sed '2,4s/i//g' mask.txt
hello zhangsan
hello ls
hello wangwu
hello l'ergouz
8、删除每一行的第一个单词
[root@localhost test]# sed 's/^[a-zA=Z0-9]*\>//' mask.txt
 zhangsan
 lisi
 wangwu
 li'ergouzi
 
9、打印第一行
[root@localhost test]# sed -e '1 p' mask.txt -n
hello zhangsan
 
10、打印行号:
[root@localhost test]# sed '=' mask.txt
1
hello zhangsan
2
hello lisi
3
hello wangwu
4
hello li'ergouzi
5
只打印第一行和第三行
[root@localhost test]# sed '1p;3p' mask.txt -n
hello zhangsan
hello wangwu
第二种方法:
[root@localhost test]# sed '1,5{
> 1p
> 4p
> }' mask.txt
hello zhangsan
hello zhangsan
hello lisi
hello wangwu
hello li'ergouzi
hello li'ergouzi
把多行转为一行,换行用‘,’替换
[root@localhost test]# sed ':a;N;s/\n/,/;b a' mask.txt
hello zhangsan,hello lisi,hello wangwu,hello li'ergouzi,
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值