SED、AWK、GREP与或匹配

                        A与B                                            A或B
awk          /A/&&/B/                                            /A/||/B/
grep         grep A|grep B                                       A/|B
sed          /A/{/B/..}                                          /A/..;/B/..;

 

 

实例操作如下:


[root@mby /home/sysadmin/zhaoyj]# cat test
AAA
BBBB
AAABBBB
CCCC
DD

 

[root@mby /home/sysadmin/zhaoyj]# awk '/A/&&/B/{print}' test
AAABBBB
[root@mby /home/sysadmin/zhaoyj]# awk '/A/&&/B/&&/C/{print}' test

 

[root@mby /home/sysadmin/zhaoyj]# grep A test |grep B
AAABBBB
[root@mby /home/sysadmin/zhaoyj]# grep A test |grep B |grep C


[root@mby /home/sysadmin/zhaoyj]# awk '/A/||/B/||/C/{print}' test
AAA
BBBB
AAABBBB
CCCC
[root@mby /home/sysadmin/zhaoyj]# grep 'A/|B' test
AAA
BBBB
AAABBBB
[root@mby /home/sysadmin/zhaoyj]# grep 'A/|B/|C' test
AAA
BBBB
AAABBBB
CCCC

 

 

可是当我用sed来测试的时候为什么就不能实现呢,尝试了两种方法都无法实现,谁能告诉我这到底是为什么呢

难道是sed版本问题吗,当我用sed --version 执行的时候却是报错信息没有显示版本信息

 

[root@mby /home/sysadmin/zhaoyj]# sed -n '/A/{/B/p}'  test
sed: 1: "/A/{/B/p}": extra characters at the end of p command

 

 

[root@mby /home/sysadmin/zhaoyj]# sed -n '/A|B/p' test

 

 

 

 

[root@mby /home/sysadmin/zhaoyj]# sed '/A/{/B/..}' test
sed: 1: "/A/{/B/..}": invalid command code .

 

[root@mby /home/sysadmin/zhaoyj]# sed '/A/..;/B/..;' test
sed: 1: "/A/..;/B/..;": invalid command code .

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值