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
    
  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/tangchuanyang/p/4157056.html
Copyright © 2011-2022 走看看