zoukankan      html  css  js  c++  java
  • awk简单用法-(1)

    一、awk基本操作


    awk指定多个分割符,分隔符中有:和空格,还有:和空格的组合,这个时候需要指定多个分隔符 -F'[ :]+',[ :]表示分隔符为:和空格,一个或者多个+号表示空格和:的组合也为一个分隔符

    打印倒数第一列,以空格和:and空格 “:”的组合为分隔符
    [root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $NF}'
    number
    100
    0
    #打印倒数第二列,以空格和:and空格 “:”的组合为分隔符
    [root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $(NF-1)}'
    age
    27
    30

    假如分隔符为空格,打印第一列    $1为第一列的数据   $0打印整个文件的内容

    cat aaa |awk '{print $1}'

    二、awk的NR、NF内置变量的应用

     NF变量的使用:打印文件的字段数,NF指的是字段的数量,有时候由于文本数据量太大,而且字段切分不规则,会导致使用 '{print $n}'取值会出现错误,建议使用NF来取响应的字段

    [root@VM_0_84_centos ~]# cat aaa 
    name: age  number
    ghd  27  100
    gym  30  0
    [root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'
    3
    3
    3
    [root@VM_0_84_centos ~]# cat aaa |awk '{print $NF}'
    number
    100
    0
    [root@VM_0_84_centos ~]# cat aaa |awk '{print $(NF-2)}'
    name:
    ghd
    gym
    [root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'
    View Code

     NR变量:打印文件的行的内容

    #打印文件的第二行内容
    [root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $0}'
    ghd  27  100
    
    #打印文件的第二行第一个列(字段)的内容
    [root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $1}'
    ghd
    
    #打印大于第一行小于第三行的所属行的所有字段,$n为字段数(列)
    cat test.txt |awk 'NR>1&&NR<3{print $0}'
    ghd  27  100
    
    #不打印第二行的其它行的所有字段
    [root@VM_0_84_centos ~]# cat test.txt |awk 'NR!=2{print $0}'
    name: age  number
    gym  30  0
    View Code

    练习:

    打印文件所有内容,并显示文件内容所属行和字段

     cat test.txt |awk -F'[ :]+' '{print NR,NF,$0}'
    1 3 name: age  number
    2 3 ghd  27  100
    3 3 gym  30  0
    View Code
  • 相关阅读:
    史上最详细 github 使用教程(英文烂的血泪史)
    如何解决跨域问题
    KSImageNamed 安装
    VVDocumenter插件安装
    通过appearance设置app主题
    UITableViewCell注册情况
    iOS9.2 xcode 7.1.1真机测试
    UIAlertController iOS9
    Values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead
    GIT
  • 原文地址:https://www.cnblogs.com/python-cat/p/7845935.html
Copyright © 2011-2022 走看看