SED、AWK、GREP与或匹配

A与BA或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 .

你可能感兴趣的:(grep)