zoukankan      html  css  js  c++  java
  • awk

    一awk 简介

    (1)awk --version (查看awk版本号)

    (2)awk 取数据快

    (3)awk {print $1} yunjisuan.txt(不加-F全输出print是输出&1是选项) -F 指定awk按照什么标志进行文件的内容切割,切割成一列一列的

    (4)如果我们不指定-F参数,awk默认按照空格进行文本切割 {}中的print 代表输出的意思,$代表去列$1是取第一列,依次类推

    (5)列如

    (6)awk -F : {print $SNF} yunjisuan  ($SNF默认取每行分割后的最后一列内容) $0取文件的全部内容

    (7)awk 的格式:

    (8)awk命令名 后面加参数 单引号里面的是模式动作大括号里的是动作,大括号外的是模式:就是条件根据什么条件来筛选数据内容,动作:是根据筛选出的条件  执行的动作

    (9)awk -F : NR--3 yunjisuan (就是只输出第三行没有{}这就是模式) awk -F : NR>3 && NR<8(就是只输出4-7行也没有{}也是模式条件筛选) (-F“:”是根据分隔符对每行的内容进行切割,在根据单引号里面的模式对每行的内容进行过滤

    (10)

      根据参数分割 在根据模式对文件内容过滤,符合模式的在动作输出。

    (11)

         [ ] 是正则 [: /] 是当两个两个分隔符号,[: /]+是贪婪模式: /没在一起当俩个,在一起就当一个分隔符

    BEGIN模块如何读取数据:

    BEGIN修改输入换行符 

    ORS修改输出换行符

     

    答案列如图下:

     

     

    sort默认以26个英文字母排序

      (uniq是相同的单词去重只留一个)

    (uniq -c 是指去重复的并记录重复的有多少个)

    (sort -n 按照数字大小排序)

    (sort -rn 按照数字倒序排序)

    (sort -k2 按照第二列的 进行排序)

     ##################################################################################################################

                                                                      awk

    一,awk 的模式:

    (1)正则表达式作为模式

    (2)比较表达式作为模式

    (3)范围模式

    (4)特殊模式BEGINEND

    (5)

    (6)

    (7)

    (8)awk $9~/^200$/{print $1}’文件名(模式条件以第九列含有以200开头接尾的,动作输出第一列内容)

      awk ‘$9==”200”{print $1}’ 文件名跟上面的命令输出的一样

    练习题

     

    (1)awk -F “[ :]+” ‘/^Zhang/{print $2,$5}’ 文件名

    (2)awk -F”[ :]+” ‘/Xiaoyu{print $2,$3}’ 文件

    (3)awk -F”[ :]+” ‘$3~/^41/{print $1,$2,$3}’ 文件名

    (4)awk -F”[ :]+” ‘$2~/^[DX]/{print $1,$2,$3}’ 文件名

    (5)awk -F”[ :]+” ‘$3~/[15]/{print $1,$2,$3}’ 文件名

    (6)两种方法:(1sed ‘#:#$#g’ 文件名 | awk -”[空格]+” ’$2~/^Xiapyu/{print $4}’  (2) awk -F”[ :]+” ‘$2~/Xiaoyu/{print “$”$4”$”$5”$”$6}’ 文件名

    (7)awk -F”[ :]+” ‘{print $1”,”$2}’ 文件名

    二,awk ip 地址

    (1)ifconfig eth0 | awk ‘BEGIN{RS=”[ :]”}NR==31’

    (2)ifconfig eth0 | awk -F “(addr:) | (Bcast:)” ‘NR==2{print $2}’

    (3)ifconfig eth0 | awk -F”[ :]+” ‘NR==2{print $4}’

    三,

     

     

     

     

    在计算机里  +是加  -是减  *是乘 /是除  **是次方

    awk看文件有多少行

    awk ‘{i=i+1}END{print i}’ 文件名

    awk ‘/xxx/{i++}END{print i}’ 文件名 (查找这个文件内容含有xxx的有几行)

    (1)求一个文件里所有数字相加的和

       awk ‘{i=i+$0}END{print i}’ 文件名

    (2)求一个文件里所有数字相乘的和

    awk ‘BEGIN{i=1}{i=i*$1}END{print i}’ 文件名

            awk 的数组

     

     

     

     

    (1)找出所有域名和占用流量值

    命令:awk -F “[ /]+” ‘{print $2,$4}’ 文件名

    (2)找出哪个域名登陆的次数多

    命令:awk -F “[ /]+” ‘{h[$2]=h[$2]+1}END{for(i in h)print i,h[i]}’ 文件名

    (3) 找出相重的域名的占用流量总和

      命令:awk -F “[ /]+” ‘{h[$2]=h[$2]+$4}END{for(i in h)print i,h[i]}’ 文件名

  • 相关阅读:
    在三层开发的DAL层中, 从web.config中读取数据库的连接字符串的方法
    [转]使用 DataAdapter 执行批量更新
    各式各样的 ICONS
    20个“标准的”配色方案
    一款 FORM 框报错提示 Demo
    超漂亮的仿腾讯弹出层效果
    POJ 2192 (DP)
    POJ 2063 (DP)
    POJ 3624 (DP)
    JavaScript技巧集
  • 原文地址:https://www.cnblogs.com/yixin666/p/9872535.html
Copyright © 2011-2022 走看看