zoukankan      html  css  js  c++  java
  • awk基本用法

    学习网址1

    学习网址2

    ls -l >> list.txt

    输出第一列

    awk '{print $1}' list.txt

    输出第二列

    awk '{printf %d
    ,$2}' list.txt

    输出第二行第一列

    awk 'NR==2 {print $1}' list.txt

    if语句

    awk '{if(NR<=2){print $0}}' list.txt


    Awk完整形式  

    awk 'BEGIN{print"start"} pattern{print} END{print "end"}' 

    其中BEGIN和END是可选模块, pattern里面每读一行执行一次,BEGIN在加载数据前执行,END在加载数据完成后执行。单引号是为了将awk命令与linux命令区分开。

    Eg、输出字段数(NF->number of fileds)和行数(NR->numberof rows)

    awk 'END{print NF,NR}'  //在读入每一行的时,awk会将NR更新为对应的行号


    1. 提前遍历全文
    2. awk 'BEGIN{while(getline<"file"){x+=$2+$3;i++};y=x/i}{if($2+$3>y)z++}END{print z}' file

    拆分

    ifconfig |awk '{if(NR==2){split($2,a,":");print a[2]}}'

    统计次数

    cat test
    123.122.123.12 12121212
    121.2332.121.11 232323
    255.255.255.255 21321
    123.122.123.12 12121212
    123.122.123.12 1212121er2
    123.122.123.12 12121212eer
    123.122.123.12 12121212ere
    255.255.255.255 21321
    121.2332.121.11 232323
    255.255.255.255 21321
    命令
    awk '{name[$1]++ }; END {for (count in name) print count,name[count]}' test|sort

    取字符前几位

    awk脚本形式

    eg:求学生平均成绩

    zhangsan 80
    lisi 81.5
    wangwu 93
    zhangsan 85
    lisi 88
    wangwu 97
    zhangsan 90
    lisi 92
    wangwu 88

    #!/bin/awk -f
    BEGIN{
    print "start"
    }
    {
    a[$1]+=$2
    b[$1]++
    }
    END{ 
    for(i in b){ 
    print i,a[i]/b[i] 
    } 
    print "end"
    }

     

    $0表示整行

    输出前3列

    ps -aux|grep java|awk '{i=1;while(i<3){printf $i;i=i+1;}print $i}'
    




  • 相关阅读:
    分享jstl实现分页,类似百度分页
    分享git的常用命令
    ubuntu certbot 生成免费泛域名证书
    es创建普通索引以及各种查询
    动态代理
    开闭原则
    单一原则
    单例模式
    设计模式之观察者模式
    SpringBoot集成spring-data-jpa注入Bean失败
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369403.html
Copyright © 2011-2022 走看看