• awk的数组使用经历


    背景:之前是一个数学妞,所以操作系统类的就由windows系列霸占了,甚至“cmd"是什么东西,环境变量是什么概念......其实说那么多就是想表明一点:你现在很有可能比我知道得多得多呢!

     
    介绍awk:
    1)awk是什么东西?
    awk其实就是一种在linux上的小工具,你可以理解其是一个方便文本处理,或者日志数据处理的插件。
    2)awk的基本使用方法及场景
    这个部分我觉得我再说什么都不如别人大神说得好,附上链接大伙看看:
    http://www.runoob.com/linux/linux-comm-awk.html
    其实除去一些基本的知识,总结起来,基本可以写成:
    awk (-F,) 'BEGIN{初始变量}{动作}END{输出结果}‘ 引用文件
    或者简写成 awk '{print $1,$2}'之类的
    3)例子
    ll.txt
    root     163335   3005  0 May09 ?        00:00:00 sshd: srtest [priv]
    srtest   163341 163335  0 May09 ?        00:00:00 sshd: srtest@pts/0
    root     164948   3005  0 May09 ?        00:00:00 sshd: srtest [priv]
    srtest   164953 164948  0 May09 ?        00:00:00 sshd: srtest@pts/1
    root     171321   3005  0 15:20 ?        00:00:00 sshd: srtest [priv]
    srtest   171326 171321  0 15:20 ?        00:00:00 sshd: srtest@pts/2
    我想在只是想看有多少个?
    awk 'BEGIN{count=0;print "the original number is" ,count}{count=count+1}END{print "the rusult number is",count}' ll.txt
    除了这个我还想在动作方面加点动作大于170000的才算数;
    awk 'BEGIN{count=0;print “first",count }{if($2>170000){count=count+1;}}END{print "last",count}  ll.txt
     
    有了这个之后大家对awk基本上了解,但是这个还只是刚刚开始:
    下面来个高一点难度的,如果有兴趣可以自己去琢磨,我也是拿到别人写的,发现写得挺好,然后收藏了。
     
    awk -F"." -v OFS=',
    ' '{head[$1"."$2]++;tail[$1"."$2]=$(NF-2)}END{n=0;for(i in head){if(head[i]==tai
    l[i]){print "arr["n"]="head[i],i;n++}else{print "arr["n"]="0,i;n++}}}'
     
    数据是长这样的:OBRST_20160301.020.0003.0004.A.DAT
    目前是看一些分割了的文件,最后数目对不对.0004.A.DAT这个说明是被分成4个,然后0003表示是第三个。
    另外看到awk对【key:value】的数据处理棒棒哒。明天我打算用python 将上面这个程序写下。。。。。好嗨森
  • 相关阅读:
    [LeetCode] Longest Common Prefix
    [LeetCode] Path Sum II
    [LeetCode] Path Sum
    [LintCode] 寻找缺失的数
    [LintCode] 最多有多少个点在一条直线上
    [LeetCode] Max Points on a Line
    [LeetCode] Binary Tree Right Side View
    [LeetCode] Populating Next Right Pointers in Each Node II
    [LeetCode] Populating Next Right Pointers in Each Node
    apache php 60 503
  • 原文地址:https://www.cnblogs.com/xyt-cathy/p/5478788.html
Copyright © 2020-2023  润新知