Linux命令——怎样统计文本文件中的记录数
1、给定一个数据文件,格式如下:
121 1,2,3
213321 2,3,4,5
23412414 5,6,7,7
2987429 2,4,5
……
现在的需求是这样的,我要统计下第二个字段中有多少个不同的值,这个要怎么统计呢?
2、按照正常逻辑,应该是获取到文件的第二列,然后对第二列进行切分,排序,统计即可实现我们的目标。但说起来容易做起来难 啊。
在实现这个功能时,主要用到如下命令:
cat
awk
sort
uniq
wc
3、看看具体要怎么写这个数据分析统计的代码吧:
cat xxxx |awk '{
split($2,myarr,",")
for (i in myarr){
print myarr[i]
}
}'|sort|uniq -c|wc -l
注意,cat是读取文件名为xxxx的文件,然后通过管线命令传递给awk命令,然后通过split函数对文件的第二个字段按照“,”进行切分,并把产生的结果赋值给myarr的数组,然后通过for循环调用print函数输出数组中的数据;再把输出的结果传递给sort进行排序,然后通过uniq -c进行唯一性统计;最后把上一步的结果通过管线命令传递给wc -l命令统计出一共有多少行记录即可获取到文本文件第二个字段有多少不同的值了。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:55
阅读量:63
阅读量:120
阅读量:48
阅读量:196