突然发现awk原来可以统计同一数据在要处理的文件中所出现的次数.原来的时候为了分析数据还自己写程序,哎,无语,当时还以为自己多强,手工分析不过来的东西写程序处理.现在想来实在是年少轻狂.解决问题嘛,不讲究方式,只要快速高效的完成任务就OK了.

好,今天小试牛刀统计了一下passwd文件中shell部分重复的shell名和出现的次数,看命令:

$awk -F: '{a[$7]++}END{for (i in a) print i" "a[i]}' /etc/passwd

/bin/false 13

/bin/sh 18

/bin/bash 2

/usr/sbin/nologin 1

/bin/sync 1

解说一下:

-F: 以:分割字段

a[$7]++ 定义了个名称为a的数组$7在passwd文件中是shell名,在这里是数组索引.awk的数据索引可以是是字符类型这点真是太帅了.

for (i in a) print i" "a[i]

用for循环取出数据来,这时候i取的时下标,a[i]是里面存储的数据

是$7出现的次数,狠!

郁闷了,这办法太强了,以后再遇到问题还是先baidu,再google然后再自己动手吧!

再试个:

cat album_photo_111.txt | awk '{a[$1]++}END {for(i in a) print i" "a[i]}'

还可以这样

cat album_photo_111.txt| awk '{print $1}'  | sort | uniq -c

试个稍微复杂点的

zcat 131225.photo.weibo.com_10.72.13.87.cn.gz | awk '{print $3}' |  sed 's/s/ /g' | awk -F . '{print $1}' | awk '{ a[$1]++ }END  { for(i in a) print i"\t"a[i] }' | sort -k1 -rn

哈哈哈哈

awk 统计数据在文件中的出现次数的更多相关文章

  1. java程序员的从0到1:统计某字符串在某文件中出现的次数(面试题)

    目录: 1. 编程题目 2. 方法一 3. 方法二 4. 方法三 5. 方法四 6. 总结 正文: 1. 编程题目 写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数. 2. ...

  2. 自定义VBS脚本(统计在指定文件中搜索字符串出现的次数)

    '=========================================================================='' VBScript Source File - ...

  3. MySQL导出数据到文件中的方法

    MySQL导出数据到文件中的方法 1.导出数据到txt文件中实例:把数据表studscoreinfo中所有数据导出到指定的位置方法:select * from 表名 into outfile 指定导出 ...

  4. java实现写大量数据到文件中

    生成.txt文件 生成.csv文件 生成.xls文件 import java.io.BufferedWriter; import java.io.File; import java.io.FileOu ...

  5. mysql导出指定字段或指定数据到文件中

    使用mysqldump把mysql数据库的数据导出到文件中还是挺方便的:比如说要导出baijunyao数据库: // mysqldump -u用户名 -p 数据库名 [表名]> 导出的文件名 m ...

  6. 使用 awk 过滤文本或文件中的字符串

    当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分.这时正则表达式就派上用场了. 什么是正则表达式? 正则表达式可以定义为代表若干 ...

  7. windows下使用ofstream默认输出内存数据到文件中时,会自动将0A换成0A0D

    0A即\n,而0D是\r,windows下换行是\n\r,因此会自动转换. 但是,这样会带来很大的问题,导致由内存写入文件中的数据和内存中不一样,还不知道是什么原因造成的. 特别是将从网络接收来的pn ...

  8. Android 中保存数据到文件中

    1.在安卓开发中,会遇到保存数据到手机中以及从手机中获取数据的情况 /** * 把数据存放到手机内存中 * * @param number * @param password * @return */ ...

  9. 关于2020.04.26【MySQL导出数据到文件中的方法】的补充

    之前导出的数据文件中没有表的列名,感觉不够完整,摸索一下发现带表列名导出也是可以的,只试了导出txt和csv两种文件类型的方法.       1.导出数据到txt文件中(包含数据表列名)的方法:先选择 ...

随机推荐

  1. delphi构造&析构调用顺序

    _ClassCreate ->Create ->AfterConstruction(->DoCreate / OnCreate) BeforeDestruction(->DoD ...

  2. AlertDialog.Builder对话框类的用法

    1.在测试时,如何实现一个提示 可以使用 Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show(); //从资源文件str ...

  3. NOJ1142-最大连续和

    最大连续和 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 1282            测试通过 : 230 ...

  4. hdu 4631Sad Love Story<计算几何>

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4631 题意:依次给你n个点,每次求出当前点中的最近点对,输出所有最近点对的和: 思路:按照x排序,然后用s ...

  5. bhrs报表年结步骤

    --前期准备数据三个表数据: s_subjtotal_year, subject_item, branch ,decrsubjtotal---informix 查看数据库剩余空间select d.na ...

  6. Socket(2)

    UDP: UDP协议没有socket之间的虚拟链路,也就是说没有“握手”阶段,只是发送接收. 可以想象成直播,直播时如果中间网络不好,不会事后重新播放之前的,而是直接跳过. 也就是说一方只负责发送,一 ...

  7. http://www.linuxso.com/linuxpeixun/10332.html

    http://blog.chinaunix.net/uid-134240-id-62371.html http://blog.chinaunix.net/uid-26495963-id-3279216 ...

  8. 管理员必备的20个Linux系统监控工具

    需要监控Linux服务器系统性能吗?尝试下面这些系统内置或附件的工具吧.大多数Linux发行版本都装备了大量的监控工具.这些工具提供了能用作取得相关信息和系统活动的量度指标.你能使用这些工具发现造成性 ...

  9. 我的VS2013中,用Ado.net给SQLParameter赋值的时候,当赋值null的时候,生成的sql语句是default

    /// <summary> /// 增加一条数据 /// </summary> public bool Add(Model.WechatDocuments model) { S ...

  10. 以Lockbits的方式访问bitmap

    转载自:http://www.cnblogs.com/xiashengwang/p/4225848.html 2015-01-15 11:38 by xiashengwang, 585 阅读, 0 评 ...