linux系统中awk命令 正则匹配

 

1、测试数据

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w

 

2、打印匹配w的行

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w
[root@centos7 test3]# awk '/w/' b.txt
w d g i
x g e w
[root@centos7 test3]# awk '/w/ {print $1, $3}' b.txt
w g
x e

 

3、打印第一列匹配w的行

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w
[root@centos7 test3]# awk '$1 ~ /w/' b.txt
w d g i
[root@centos7 test3]# awk '$1 ~ /w/ {print $1,$4}' b.txt
w i

 

4、打印全文没有匹配w的行

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w
[root@centos7 test3]# awk '!/w/' b.txt
e t s e
s g m x
d t e g

 

5、打印第一列没有匹配w的行

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w
[root@centos7 test3]# awk '$1 !~ /w/' b.txt
e t s e
s g m x
d t e g
x g e w

 

6、打印同时匹配s或者w的行

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w
[root@centos7 test3]# awk '/[sw]/' b.txt
e t s e
s g m x
w d g i
x g e w

 

7、打印第3列匹配e同时第四列匹配g的行

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w
[root@centos7 test3]# awk '$3 ~ /e/' b.txt
d t e g
x g e w
[root@centos7 test3]# awk '$3 ~ /e/ && $4 ~ /g/' b.txt
d t e g

 

8、输出第3列没有匹配e的行

[root@centos7 test3]# cat b.txt
e t s e
s g m x
w d g i
d t e g
x g e w
[root@centos7 test3]# awk '$3 !~ /e/' b.txt
e t s e
s g m x
w d g i

 

9、匹配包含两个关键词中间的所有行

[root@centos7 test3]# cat c.txt
1 张三 历史 81 B 0.367
2 李四 物理 72 C 0.588
3 李华 数学 87 B+ 0.677
4 方咪 历史 91 A 0.876
5 陈明 语文 81 B 0.812
6 鱼鱼 英语 81 B 0.571
1 张三 历史 81 B 0.367
2 李四 物理 72 C 0.588
3 李华 数学 87 B+ 0.677
4 方咪 历史 91 A 0.876
5 陈明 语文 81 B 0.812
6 鱼鱼 英语 81 B 0.571
[root@centos7 test3]# awk '/李四/,/陈明/' c.txt
2 李四 物理 72 C 0.588
3 李华 数学 87 B+ 0.677
4 方咪 历史 91 A 0.876
5 陈明 语文 81 B 0.812
2 李四 物理 72 C 0.588
3 李华 数学 87 B+ 0.677
4 方咪 历史 91 A 0.876
5 陈明 语文 81 B 0.812

 

[root@centos7 test3]# cat a.txt
1 张三 历史 81 B 0.367
2 李四 物理 72 C 0.588
3 李华 数学 87 B+ 0.677
4 方咪 历史 91 A 0.876
5 陈明 语文 81 B 0.812
6 鱼鱼 英语 81 B 0.571
[root@centos7 test3]# awk '$4==72,$4==91 {print $0}' a.txt
2 李四 物理 72 C 0.588
3 李华 数学 87 B+ 0.677
4 方咪 历史 91 A 0.876

 

posted @ 2021-04-23 18:01  小鲨鱼2018  阅读(1318)  评论(0编辑  收藏  举报