linux awk 学习笔记二(正则匹配、数学、逻辑匹

系统 1805 0

文章参考 https://www.centos.bz/2012/07/awk-notes/

 

正则表达式

1匹配包含root的数据,并打印1~5的参数

      [root@auc-test2 tmp]# gawk 'BEGIN{FS=":"} /root/{print $1,$2,$3,$4,$5}' passwd
root x 0 0 root
operator x 11 0 operator
    

 

数据是以r开头的,则打印第一个参数

      [root@eccs_web huangbiao]# awk -F: '/^r/{print $1}' /etc/passwd
root
rpc
rpcuser
    

 

2匹配操作符(~)

匹配passwd文件中 第一个参数是r开头的数据 ,并打印第一个参数

      [root@auc-test2 tmp]# gawk 'BEGIN{FS=":"} $1~/^r/{print $1}' passwd
root
rpc
rpcuser
    

 

下面这个例子与上面相反,即不匹配(!符号)

      [root@auc-test2 tmp]# gawk 'BEGIN{FS=":"} $1!~/^r/{print $1}' passwd
bin
daemon
adm
    

 注意:匹配符号后面没有分号分隔。

 

      [root@eccs_web huangbiao]# awk -F: '$7~"bash$"{print $1,$7}' /etc/passwd
root /bin/bash
mysql /bin/bash
weblogic /bin/bash
lm /bin/bash
applaud /bin/bash
monitor /bin/bash
    

 

数学、逻辑匹配

linux awk 学习笔记二(正则匹配、数学、逻辑匹配)

 

 

属于root组的用户

      [root@auc-test2 tmp]# gawk -F : '$4==0{print $1}' /etc/passwd
root
sync
shutdown
halt
operator
    

 

备注: -F : 与 ‘BEGIN{FS=”:”}’等价 注意数学表达式后面没有分号分隔

 

      [root@eccs_web huangbiao]# awk -F: '$3>=500{print $1,$3}' /etc/passwd
nfsnobody 65534
weblogic 500
lm 501
applaud 503
monitor 504
    

 

      [root@eccs_web huangbiao]# awk -F: '$3+1>501{print $1,$3}' /etc/passwd
nfsnobody 65534
lm 501
applaud 503
monitor 504
    

 

精确匹配 ==

      [root@eccs_web ~]# awk -F : '$1 == "root"{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash

    

 

      [root@eccs_web ~]# awk -F : '$1=="root"{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@eccs_web ~]# awk -F : '$1=="root"||$1=="lm"{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
lm:x:501:501::/home/lm:/bin/bash

    

 

选择逻辑判断—— && ;||

      [root@eccs_web ~]# awk -F : '/root/{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@eccs_web ~]# awk -F : '/root/&&/operator/{print $0}' /etc/passwd
operator:x:11:0:operator:/root:/sbin/nologin

    

 

      [root@eccs_web ~]# awk -F : '/root/||/lm/{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
lm:x:501:501::/home/lm:/bin/bash

    

 

 

 

 

linux awk 学习笔记二(正则匹配、数学、逻辑匹配)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论