文件内容统计

来源:互联网 发布:华硕淘宝官方旗舰店 编辑:程序博客网 时间:2024/05/29 19:04

文件data中存放着数万条命令,现需要统计各命令条数,并输出前K多的命令;

处理方法:

一:

若内存不足一次读入,则一次读一行,遍历处理。

//#include <iostream>//#include <fstream>//#include <map>//using namespace std;map<string,int> save;string temp;fstream fs.open("data.txt");while(getline(fs,temp)){  ++save[temp];}


用一个map<string ,int>型的关联容器,存储即可,key不存在,则生成一个key,value对,且value默认为0;


二:

Linux命令行处理;

cat data | cut -c8- | sort | uniq -dc | sort -n -r |head -n 3 > /result

命令:| 管道,前方输出转为后方输入,如cat打开data输出到cut的输入端;

命令:cut 裁剪字符串,-c表示按字符裁剪,8-从第八位开始往后;

命令:uniq 去重,-d显示重复行,-c加上重复行计数到头部单独一列;

命令:sort 排序,-n按大小排序,-r reverse 反序排列,默认升序;

命令:head 取头部数据

命令:> 输出重定向到result文件。

阅读全文
0 0
原创粉丝点击