码迷,mamicode.com
首页 > 其他好文 > 详细

awk

时间:2017-11-22 10:21:47      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:awk

[root@abinlinux ~]# awk -F ‘:‘ ‘{print $3}‘ 1.txt   第三段    

0

1

2

[root@abinlinux ~]# awk -F ‘:‘ ‘{print $3,$4}‘ 1.txt     三段   四段    截取段  

0 0

1 1

2 2

[root@abinlinux ~]# awk -F ‘:‘ ‘OFS=":" {print $3,$4}‘ 1.txt  

OFS=":"相当于 -F   指定分隔符   以:号分开  同时可以使用 #&! 也可以用做分开

0:0

1:1

2:2

3:4

4:7

[root@abinlinux ~]# awk -F ‘:‘ ‘OFS="#" {print $3,$4,$1}‘ 1.txt    

$3 第三段  $4 第四段 $1第一段  

0#0#root

1#1#bin

2#2#daemon

3#4#adm

[root@abinlinux ~]# awk ‘/yun/‘ 1.txt    awk 匹配 用法

yun:x:500:500::/home/yun:/bin/bash

[root@abinlinux ~]# awk ‘/yun|root/‘ 1.txt     也可以匹配多个 用| 他表示  用法  awk可以直接用|

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

yun:x:500:500::/home/yun:/bin/bash

[root@abinlinux ~]# awk ‘/r*o/‘ 1.txt   可以匹配*号前面的任意一个  

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

[root@abinlinux ~]# awk ‘/r?o/‘ 1.txt   匹配问号前面 的一个或者多个  

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

[root@abinlinux ~]# awk ‘/r+o/‘ 1.txt   匹配一个或多个加好前面的字符  

root:x:0:0:root:/root:/bin/bash

mail:x:8:12:mail:/var/spoorrrrrrrrol/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

gopher:x:13:30:gopher:/var/goproher:/sbin/nologin

[root@abinlinux ~]# awk ‘/r.*o/‘ 1.txt     这叫贪婪匹配  

root:x:0:0:root:/root:/bin/bash

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologi

[root@abinlinux ~]# awk ‘/(oo)+/‘ 1.txt    一个是可以的多个也是可以的

rooooooooot:x:0:0:root:/root:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@abinlinux ~]# awk ‘/(ooo)+/‘ 1.txt      三个O只有 这些         awk不支持{}

rooooooooot:x:0:0:root:/root:/bin/bash

halt:x:7:0:halt:/sbin:/rooooo*osbin/halt

[root@abinlinux ~]# awk -F ‘:‘ ‘$1~/r*o/‘ 1.txt    匹配第一段带ro的 或者多个  

rooooooooot:x:0:0:root:/root:/bin/bash

daemon:x:2:2:daemon:/sbin:/sbin/nologin

shutdown:x:6:0:shutdowr.on:/sbin:/sbin/shutdown

operator:x:11:0:operator:/root:/sbin/nologin

[root@abinlinux ~]# awk -F ‘:‘ ‘$1~/r*o/ {print $4}‘ 1.txt     匹配过程中单独的显示第几段

                                                                                               精准匹配精准打印  

0

2

0

0

30

99

89

26

[root@abinlinux ~]# awk -F ‘:‘ ‘$1~/r*o/ {print $1,$3}; $1~/nobody/ {print $1,$3}‘ 1.txt

两个规则的匹配

rooooooooot 0

daemon 2

shutdown 6

operator 11

gopher 13

nobody 99

nobody 99

postfix 89

postgres 26

[root@abinlinux ~]# awk -F ‘:‘ ‘$1~/r*o|nobody/ {print $1,$3}‘ 1.txt

$1~/r*o|nobody/  匹配第一段 r*o 或者nobody      ;{print $1,$3}‘  匹配第一和第三段  打印

                        一个规则的匹配  

rooooooooot 0

daemon 2

shutdown 6

operator 11

gopher 13

nobody 99

postfix 89

postgres 26


本文出自 “11325852” 博客,请务必保留此出处http://11335852.blog.51cto.com/11325852/1983968

awk

标签:awk

原文地址:http://11335852.blog.51cto.com/11325852/1983968

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!