awk 统计数据在文件中的出现次数
突然發現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?
哈哈哈哈
?
?
?
轉載于:https://www.cnblogs.com/gaoj87/p/3494539.html
總結
以上是生活随笔為你收集整理的awk 统计数据在文件中的出现次数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目开发流程简述
- 下一篇: SqlServer2005高效分页sql