免费注册 查看新帖 |

Chinaunix

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

[文本处理] 请教:怎样实现对当月每天指定文件夹下的文件条数进行count累加? [复制链接]

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-10 06:20:00每日论坛发贴之星
日期:2015-10-10 06:20:00程序设计版块每日发帖之星
日期:2015-10-11 06:20:00程序设计版块每日发帖之星
日期:2015-10-25 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-15 00:40 |只看该作者 |倒序浏览
请教用shell怎样实现如下功能。谢谢!

(1) 2015年9月1日,系统接收数据如下。
$ls -l /targets/*.*
a.txt
b.txt
c.txt
$cat /targets/a.txt
fileid,YYYYMMDD,注释
A00001,20150901,apple
A00001,20150901,pear
A00001,20150901,banana

$cat /targets/b.txt
fileid,YYYYMMDD,注释
B00001,20150901,lemon
B00001,20150901,watermelon
B00001,20150901,water
B00001,20150901,milk

$cat /targets/c.txt
c.txt为空文件

将上计文件分别进行当天数据count之后,生成如下文件。
$ls -l /countfiles/*.*
cat /countfiles/a.txt
YYYYMM,counttotals
201509,3

cat /countfiles/b.txt
YYYYMM,counttotals
201509,4

cat /countfiles/c.txt
YYYYMM,counttotals
201509,0


(2)2015年9月2日新收到的数据如下。
$ls -l /targets/*.*
a.txt
b.txt
c.txt
$cat /targets/a.txt
fileid,YYYYMMDD,注释
A00001,20150902,apple
A00001,20150902,pear
A00001,20150902,banana

$cat /targets/b.txt
fileid,YYYYMMDD,注释
B00001,20150902,lemon
B00001,20150902,watermelon
B00001,20150902,water
B00001,20150902,milk

$cat /targets/c.txt
fileid,YYYYMMDD,注释
C00001,20150902,tea
C00001,20150902,coffee


将(2)文件分别进行当天数据count之后再加上(1)9月1日的count结果,最后9月2日生成如下文件。
$ls -l /countfiles/*.*
cat /countfiles/a.txt
YYYYMM,counttotals
201509,6

cat /countfiles/b.txt
YYYYMM,counttotals
201509,8

cat /countfiles/c.txt
YYYYMM,counttotals
201509,2

以此类推到9月底累加...

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2015-09-15 09:06 |只看该作者
这是布置任务来了?

论坛徽章:
11
程序设计版块每日发帖之星
日期:2015-09-09 06:20:00CU十四周年纪念徽章
日期:2016-05-16 11:11:112016科比退役纪念章
日期:2016-05-04 17:16:57程序设计版块每日发帖之星
日期:2016-02-20 06:20:00程序设计版块每周发帖之星
日期:2015-11-06 19:30:58程序设计版块每日发帖之星
日期:2015-09-12 06:20:00程序设计版块每日发帖之星
日期:2015-09-11 06:20:00每日论坛发贴之星
日期:2015-09-10 06:20:00程序设计版块每日发帖之星
日期:2015-09-10 06:20:00每日论坛发贴之星
日期:2015-09-09 06:20:0015-16赛季CBA联赛之四川
日期:2016-12-15 15:52:10
3 [报告]
发表于 2015-09-15 09:08 |只看该作者
awk -F',' 'BEGIN{print "YYYYMM counttotals"} {if(NR>1) b=substr($2,1,6)} END{print b,NR-1}' test.txt

论坛徽章:
7
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:18程序设计版块每日发帖之星
日期:2015-08-09 06:20:00每日论坛发贴之星
日期:2015-08-09 06:20:00程序设计版块每日发帖之星
日期:2015-08-22 06:20:00程序设计版块每日发帖之星
日期:2015-08-27 06:20:00
4 [报告]
发表于 2015-09-15 09:29 |只看该作者
好长啊。。。。

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-10 06:20:00每日论坛发贴之星
日期:2015-10-10 06:20:00程序设计版块每日发帖之星
日期:2015-10-11 06:20:00程序设计版块每日发帖之星
日期:2015-10-25 06:20:00
5 [报告]
发表于 2015-09-15 14:47 |只看该作者
抱歉,我描述的不太明确。
输出的结果文件a.txt, b.txt, c.txt文件中,只保留统计的件数总和就可以。
比如
$cat a.txt
6
$cat b.txt
8
$cat c.txt
2

写了下面一个处理,
请教各位高手,怎样才能分别取到目录/countfiles下的文件list: a.txt,b.txt,c.txt
多谢!
-------------------------------------------------------------------------
$receivepath=”/target”
$countpath=” /countfiles”

cd $countpath
#先取得前一天的件数总和值
while find –name “*.txt” | read sum_count;
do
  #count文件行数,并将表头的header那1行减掉
   record_count=`expr $(wc –l < $receivepath/$file_id.txt) -1`
#将当月目前件数累加结果输出到$file_id.txt
   echo –e “$(`expr $sum_count + $record_count`)” > $countpath$file_id.txt;
done
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP