zoukankan      html  css  js  c++  java
  • awk命令

    awk和sed都可以处理文本

    awk侧重于复杂逻辑处理

    sed侧重于正则处理

    awk和sed可以共同使用

    练习文件地址

    passwd :etc目录下

    access.log :/usr/local/nginx/logs

     

    awk '{print $1}' file 打印第一列内容 默认空格分割

    awk -F ':' '{print $1}' file 打印第一列内容 -F设置分隔符参数,设置:分割

     

     

    awk -F ':' '{print"username:"$1" "$2}' passwd 可以用字符串拼接打印,但是字符串需要用“”引起来。

     

    内置函数

    NR:行号

    NF:字段数量

    FILENAME:正在处理的文件名

    awk -F ':' '{print NR" "NF" " FILENAME}' passwd

    awk -F ':' '{printf("line:%s" " col:%s" "user:%s",NR,NF,$1)}' passwd 加多一个

     

     

     

    command扩展

    awk -F ':' 'BEGIN{print"line col user"}{print NR,NF,$1}END{print "-------end--------"}' passwd

     

    例子1:显示/etc/passwd中用户名ID大于100的行

    awk -F ':' '{if($3>100) print $1}' passwd ‘逻辑表达式+操作命令 ’

    awk -F ':' '$3>100{print $1}' passwd ‘逻辑表达式+操作命令 ’

     

    例子2:在服务器的日志中找出IP:192.168.174.129的访问日期

    awk '/192.168.174.129/{print $4}' access.log ‘正则表达式+操作命令 ’

     

    awk '/192.168.174.129/{print substr($4,2)}' access.log

    substr函数可以截取这段数的开头和结尾,以1开头,【是1,所以用2截取

     

     

    例子3:显示/etc/passwd中以m开头用户名

    awk -F ':' '$1~/^m.*/{print $1}' passwd

    awk -F ':' '$1!~/^m.*/{print $1}' passwd 显示不以m开头的用户名

     

    例子4:统计当前文件夹下的文件/文件夹占用的大小

    ll|awk 'BEGIN{count=0}{count+=$5}END{print count}'

    ll|awk 'BEGIN{count=0}{count+=$5}END{print count/1024/1024"MB"}' 因为ll默认统计出来的是b

     

    例子5:统计显示/etc/passwd的账户总人数

    awk -F ':' 'BENGIN{count=0}$1!~/^$/{count++}END{print count}' passwd

     

    例子6:统计显示/etc/passwd中UID大于100的用户名

    awk -F ':' '$3>100{print $1}' passwd

     

    awk -F ':' 'BEGIN{count=0}$3>100{user[count++]=$1}END{for(i=0;i<count;i++)print i,user[i]}' passwd

     

     

    例子7:统计access_log日志中每个IP出现的次数

    awk '{arr[$1]++}END{for(key in arr)print key,arr[key]}' access.log

     

  • 相关阅读:
    c++中sort()及qsort()的用法总结
    POJ的层次感分类
    DFS练习-HDU1010
    Dijkstra&&Floyd
    DFS练习一---HDU 1342
    快速幂取模算法
    树的实现
    C++的队列和pair
    BFS练习-POJ.2386
    Codeforces 1139E(二分图最大匹配)
  • 原文地址:https://www.cnblogs.com/xiaojing2017/p/8617570.html
Copyright © 2011-2022 走看看