zoukankan      html  css  js  c++  java
  • awk指令的使用

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大
    awk工作流程是这样的:读入有' '换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"
    ARGC               命令行参数个数
    ARGV               命令行参数排列
    ENVIRON            支持队列中系统环境变量的使用
    FILENAME           awk浏览的文件名
    FNR                浏览文件的记录数
    FS                 设置输入域分隔符,等价于命令行 -F选项
    NF                 浏览记录的域的个数
    NR                 已读的记录数
    OFS                输出域分隔符
    ORS                输出记录分隔符
    RS                 控制记录分隔符
     

    # 取出两个文件中相同的部分

    awk 'NR==FNR{a[$0]=0;next}{if($0 in a){print $0}}' file1 file2
    

    # 取出两个文件中不同的部分

    awk 'NR==FNR{a[$0]=0;next}{if(!($0 in a)){print $0}}' file1 file2
    

    # 计算nginx日志访问排名前10位的ip

    awk '{a[$1]++}END{for(i in a) print a[i],i}' access.log | sort -rn | head -10
    

    #统计各个科目的数量

    # cat test.txt
    xqq 语文 数学
    xq 英语 语文
    x 数学 美术
    awk '{for(i=2;i<=NF;i++) a[$i]++}END{for(i in a) print i,a[i]}' test.txt
    

    # 获取系统ip

    ifconfig eth0 | awk 'NR==2{print $2}' |  cut -d: -f2
    
  • 相关阅读:
    效能分析
    个人项目词频统计2
    PSP 进度条 柱状图 饼状图
    四人小组项目
    结对编程
    品评历届学生作品
    构建之法终于到手了
    补上周一的进度条进度条:
    燃尽图
    scrum站立会议
  • 原文地址:https://www.cnblogs.com/tangchuanyang/p/4157056.html
Copyright © 2011-2022 走看看