免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 64071 | 回复: 14
打印 上一主题 下一主题

[文本处理] 急,求一条查询子文件夹的统计语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-07-03 19:12 |只看该作者 |倒序浏览

      查询一个磁盘某个子文件夹privite 下某天的日志多少MB,多少行,
        如    /data01/mobile/xx/x/private/access.20170501
               /data01/mobile/xx/x/public/access.20170501
               /data01/mobile/xx/x/private/access.20170501.mdok
               /data01/139ab/xxab/private/ng-access.20170501
               /data01/139ab/xxab/private/ng-access.20170501.mdok
   备注:每天会收集很多数据, 为了确保文件收集的完整性,文件结尾的*.mdok 表示access.20170501这个文件可以统计了。
    每天统计一次private这个文件夹下有多少个日志(条件是:当这个文件的mdok产生后,才可以统计),
     统计结果第一列是日志_日期(yyyymmdd),第二列是 多少MB  第三列是 有多少行
        想要的count.txt结果是(tab 键做分隔符):
                                 access.20170501   120MB   5000
                                 ng-access.20170501   1000MB  20000

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2017-07-03 23:18 |只看该作者
回复 1# wzltian

$ ls private/*.mdok | awk 'sub("[.]mdok$",""){cmd="wc -cl "$0;cmd | getline;close(cmd);sub(".*/","",$3);printf("%-20s %8s %10d\n",$3,int($2/1024**2)"M",$1)}'
access.20170501            4M     300000
ng-access.20170501       200M    1210550

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
3 [报告]
发表于 2017-07-04 09:17 |只看该作者
本帖最后由 关阴月飞 于 2017-07-04 10:50 编辑

wc -lc  privite/*.mdok   |awk 'sub(/.mdok$/,a){print $NF,$2/1024/1024"M",$1}'

论坛徽章:
0
4 [报告]
发表于 2017-07-04 10:27 |只看该作者
回复 2# jason680

谢谢你,  不过我试了多次, 都是报这个错   ls: cannot access  的错误

论坛徽章:
0
5 [报告]
发表于 2017-07-04 10:30 |只看该作者
回复 3# 关阴月飞

不好意思,   你这个也是错的,  报错类似  No such file or directory   ,还有一点就是,我是在/data01  这个目录下执行命令,不是在private下执行

论坛徽章:
0
6 [报告]
发表于 2017-07-04 10:30 |只看该作者
回复 4# wzltian

还有一点就是,我是在/data01  这个目录下执行命令,不是在private下执行

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
7 [报告]
发表于 2017-07-04 10:46 |只看该作者
回复 6# wzltian
目录变了,你自己改一下就好了呀:
wc -lc  /data01/*.mdok   |awk 'sub(/.mdok$/,a){print $NF,$2/1024/1024"M",$1}'

论坛徽章:
0
8 [报告]
发表于 2017-07-04 10:54 |只看该作者
回复 7# 关阴月飞

  试过多次,还是报  No such file or directory  这样的错误,不好意思是我没有说清楚, 因为磁盘下文件很多,我举例时,就举了几个例子没有把问题说青瓷,private是子文件夹,类似这样/data01/139ab/xxab/private/ng-access.20170501  的,或  data01/mobile/xx/x/private/access.20170501  类似这样的,我要统计的就是每日private下的文件有多少MB 和多少行。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
9 [报告]
发表于 2017-07-04 10:54 |只看该作者
本帖最后由 jason680 于 2017-07-04 11:01 编辑

回复 4# wzltian

$ pwd
/tmp/data01

$ find . -type f
./mobile/xx/private/access.20170501
./mobile/xx/private/access.20170501.mdok
./mobile/xx/public/access.20170501
./139ab/xxab/private/ng-access.20170501
./139ab/xxab/private/ng-access.20170501.mdok

$ find . -name "*.mdok" -type f | awk '/private/{sub("[.]mdok$","");cmd="wc -cl "$0;cmd | getline;close(cmd);printf("%-20s %8s %10d\n",$3,int($2/1024**2)"M",$1)}'
./mobile/xx/private/access.20170501       4M     300000
./139ab/xxab/private/ng-access.20170501     200M    1210550

$ find . -name "*.mdok" -type f | awk '/private/{sub("[.]mdok$","");cmd="wc -cl "$0;cmd | getline;close(cmd);sub(".*/","",$3);printf("%-20s %8s %10d\n",$3,int($2/1024**2)"M",$1)}'
access.20170501            4M     300000
ng-access.20170501       200M    1210550



评分

参与人数 1信誉积分 +50 收起 理由
wzltian + 50 很给力!

查看全部评分

论坛徽章:
0
10 [报告]
发表于 2017-07-04 10:55 |只看该作者
回复 8# wzltian

   不好意思打错字,不是“青瓷” 是清楚  /data01/mobile/xx/x/private/access.20170501(前面少了一个/)  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP