SED、AWK、GREP与或匹配

来源:互联网 发布:女朋友性格太强势 知乎 编辑:程序博客网 时间:2024/05/18 15:28

                        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 .

 

 

 

 

原创粉丝点击