zoukankan      html  css  js  c++  java
  • awk十三问-【AWK学习之旅】

    ---===AWK学习之旅===---
    十三个常用命令行处理
     
    [root@monitor awkdir]# cat emp.txt
    Beth 4.00 0
    Dan 3.75 0
    Kathy 4.00 10
    Mark 5.00 20
    Mary 5.50 22
    Susie 4.25 18
     
    1.不打印最后一列
    |awk 'BEGIN{FS="-";OFS="-"} NF--''
     
    2.计数分组
    |awk 'BEGIN{FS="-";OFS="-"} NF--'|awk '{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}'
     
    AWK知识:
     
    3.NF:字段数量,是个内置变量
    NR:行号
     
    4.printf : 格式
    awk '{printf("total pay for %s is $%.2f ",$1,$2*$3)}' emp.txt
     
    5.# 左对齐,占8个字符;小数点后2位,总共占6位。例如:100.02 
    awk '{printf("%-8s $%6.2f ",$1,$2*$3)}' emp.txt
     
    6.打印标题:
    awk 'BEGIN{print "NAME RATE HOURS"; print ""} {print}' emp.txt
     
    统计某字段符合条件的 有多少行:
    awk '$3 > 15 {emp = emp + 1} END {print emp} emp.txt
     
    7.统计行数:NR
     
    8.按某列求平均值:
    awk '{ pay = pay + $2 * $3 } END {print NR,"employees" ;print "total pay is",pay}' emp.txt
     
    9.求某列的最大值:
    wk '$3 > maxrate {maxrate = $3; maxemp = $1} END {print "highest hourly rate:",maxrate,"for",maxemp}' emp.txt
     
    10.打印最后一行:
    [root@monitor awkdir]# awk '{last = $0} END {print last}' emp.txt
    Susie 4.25 18     
     
    11.分割某一列:
    awk '{split($2,array,".");$2=array[1];print}' test.txt
     
    内置函数:length
    11.统计字段字符长度:
    awk '{print $1,length($1)}' emp.txt
    2017-07-25 11:16:10.220 queries client
    2017-07-25 11:16:10 queries client
     
    12.列转换成行,指定分隔符分割
    awk '{names = names $1 ","}END{print names}' a.txt
    等同于:cat a.txt |tr ' ' ',' 
    [root@monitor awkdir]# awk '{names = names $1 "-"} END {print names}' emp.txt
    Beth-Dan-Kathy-Mark-Mary-Susie-
     
    13.统计行数,单词,字符数
    行数:NR
    打印每行的行号:
    awk '{print NR}' emp.txt
     
    打印总的行数:也就是最后一行行号
    awk 'END{print NR}' emp.txt
     
    单词:每个域分割就算一个单词,也就是每行的列数
    awk '{nw = nw + NF}END{print nw}' emp.txt
     
    字符数:
    解析:awk 行级处理。每次处理,$0就代表一行内容。 
     [root@monitor awkdir]# awk '{print length($0)}' emp.txt
    11
    10
    13
    12
    12
    13
    统计总数:每行的值,一次累加。
    [root@monitor awkdir]# awk '{nc = nc + length($0)}END{print nc}' emp.txt
    71
  • 相关阅读:
    段落排版--对齐
    1055. The World's Richest (25)
    1054. The Dominant Color (20)
    (八十一)利用系统自带App来实现导航
    (八十)MapKit放置系统默认大头针和自定义大头针
    (七十九)MapKit的基本使用
    1052. Linked List Sorting (25)
    (七十八)使用第三方框架INTULocationManager实现定位
    (七十七)地理编码与反地理编码
    1051. Pop Sequence (25)
  • 原文地址:https://www.cnblogs.com/cuisi/p/7245846.html
Copyright © 2011-2022 走看看