• shell入门-awk-1


    awk对于sed grep的优势在于分段,把分隔符分割成一小段一小段,针对段进行匹配,替换,操作,逻辑判断,比较...等

    awk的基本操作

    [root@wangshaojun ~]# awk -F ':' '{print $3}' 1.txt //// -F 指定分隔符  $3 就是第三段
    0
    1
    2
    3

    .....

    指定多个段 

    [root@wangshaojun ~]# awk -F ':' '{print $3,$4,$1}' 1.txt
    0 0 root
    1 1 bin
    2 2 daemon
    3 4 adm
    4 7 lp

    .....

    指定显示指定的分隔符

    [root@wangshaojun ~]# awk -F ":" 'OFS=":" {print $3,$4,$1}' 1.txt
    0:0:root
    1:1:bin
    2:2:daemon
    3:4:adm

    ......

    匹配指定字符 

    [root@wangshaojun ~]# awk '/root/' 1.txt
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

    匹配多个字符

    [root@wangshaojun ~]# awk '/root|user/' 1.txt
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

    带特殊字符的

    [root@wangshaojun ~]# awk '/r*o/' 1.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin

    ...

    分段匹配

    [root@wangshaojun ~]# awk -F':' '$1~/r*o/' 1.txt////以冒号为分隔符,搜索第一段含r*o的行
    root:x:0:0:root:/root:/bin/bash
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    .....

    分段匹配并只显示指定的行

    [root@wangshaojun ~]# awk -F':' '$1~/r*o/ {print $3}' 1.txt ///显示第一段r*o的行的第三段
    0
    2
    6
    11

    ....

    同时匹配两个关键词并现在指定行的指定段

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

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

    root 0
    daemon 2
    shutdown 6
    operator 11

    .....

    //////////////////////////////////////////////////////////////////////////////////////////

    总结:awk -F 指定分割符 ‘:’  OFS=":"指定显示结果的分隔符  以段来匹配 ‘/r*o/’指定过滤条件   {print $3}显示过滤结果的第几段  指定文件

     awk -F ‘:’ ‘$1~/r*o/’  指定根据第几段来搜索 ~ 后面跟关键词

    |可以合并搜索  ;可以分别搜索

  • 相关阅读:
    Web基础了解版09-Cookie-Session
    Mysql基础04-查询
    Web基础了解版08-JSTL-Core标签库
    Web基础了解版07-EL表达式-运算符-11个隐式对象
    Web基础了解版06-Jsp-指令、标签-九大隐式对象-四个域对象
    Java语法进阶15-反射及API
    Spark原理概述
    Apache Kafka系列(六)客制化Serializer和Deserializer
    Azkaban时区问题导致调度差1天
    impala jdbc驱动执行impala sql的一个坑(不支持多行sql)
  • 原文地址:https://www.cnblogs.com/wangshaojun/p/4976361.html
Copyright © 2020-2023  润新知