免费注册 查看新帖 |

Chinaunix

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

[文本处理] 怎么获取信息 [复制链接]

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-24 12:06 |只看该作者 |倒序浏览
hi,all~

咨询一下:
  1. 2013-12-27      20602
  2. 2013-12-27      20603
  3. 2013-12-25      20596
复制代码
对于一些这样的数据,第一列表示日期,第二列是id号,我现在想在另一个文件夹获取对应的信息。
文件夹的命名是对应的日期,比如131227这样的。但是有个问题就是,每周周五会把这一周的所有数据汇总在一起,也就是说会把2013-12-25的信息(131225整个文件夹)合并到131227下面,这个文件夹下面的唯一文件就变成:
  1. 20602                 wangjicong              wait time/0:2:11:46     run time/0:0:0:1        maxvmem/0.000
  2. 20603                yangxiao                wait time/0:0:0:9       run time/0:0:2:16       maxvmem/2.460G
  3. 20597                 yangxiao                wait time/0:0:0:15      run time/0:0:2:16       maxvmem/2.394G
  4. 20596                 yangxiao                wait time/0:0:0:24      run time/0:0:2:15       maxvmem/2.454G
复制代码
对应的第一列是id,我现在就是想要得到第一个文件中对应id的那些行,我没想明白的是怎么把第一个文件中2013-12-27这些id变成131227这样的数值,得到文件夹名,最难最难的是,如果我去获取的是30天内的所有id也就是2013-12-25---2014-01-24的信息,我就要从:
131227
140103
140110
140117
140124
这五个文件夹下面去grep对应的id啊~我怎么知道就是这五个文件夹啊?
如果今天是2014-01-25,获取的是30天内的所有id也就是2013-12-26---2014-01-25,我就得从:
131227
140103
140110
140117
140124
140125
六个文件夹去找啊,亲!!
谁能帮帮我~

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2014-01-24 12:24 |只看该作者
我没想明白的是怎么把第一个文件中2013-12-27这些id变成131227这样的数值

[root]# cat file1
2013-12-27      20602
2013-12-27      20603
2013-12-25      20596
[root]# cut -c3-4,6-7,9-10 file1
131227
131227
131225

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
3 [报告]
发表于 2014-01-24 12:36 |只看该作者
本帖最后由 huang6894 于 2014-01-24 12:41 编辑

回复 2# Shell_HAT


嗯嗯,是的是的,但怎么判断能合并前一周的数据成为一个文件夹呢?就是比如今天是140125,我怎么把文本一里面前面30天,也就是确定2013-12-26---2014-01-24这些数据存放的目录:
131227
140103
140110
140117
140124
呢?
上面的例子中我要在131227这个文件夹下面唯一存在的那个文件qacct得到id分别为20602 20603 20596的行

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
4 [报告]
发表于 2014-01-24 13:00 |只看该作者
本帖最后由 huang6894 于 2014-01-24 13:08 编辑

回复 2# Shell_HAT


    顺便问一下大神,有数值的这个转换有awk版本吗?
我想输出131227   20602这样的结果,在awk中怎么实现咧?


一个笨方法:echo "2013-12-27      20602"|awk '{gsub(/\-/,"",$1);print substr($1,3)}'

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
5 [报告]
发表于 2014-01-24 13:16 |只看该作者
就是比如今天是140125,我怎么把文本一里面前面30天,也就是确定2013-12-26---2014-01-24这些数据存放的目录
  1. #!/bin/bash
  2. DATE_START=`date -d "-30 days" +"%Y-%m-%d"`
  3. DATE_END=`date +"%Y-%m-%d"`
  4. SEC_START=`date -d "$DATE_START" "+%s"`
  5. SEC_END=`date -d "$DATE_END" "+%s"`
  6. for((i=$SEC_START;i<=$SEC_END;i+=86400)); do
  7.     DATE_THIS=`date -d "@$i" "+%y%m%d"`
  8.     WEEK_NUM=`date -d "$DATE_THIS" "+%u"`
  9.     if [ $WEEK_NUM == 5 ]; then
  10.         echo $DATE_THIS
  11.     fi
  12. done
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2014-01-24 13:22 |只看该作者
回复 4# huang6894


另一种方式:
  1. echo "2013-12-27      20602"|awk '{print substr($1,3,2)substr($1,6,2)substr($1,9,2)}'
复制代码

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
7 [报告]
发表于 2014-01-24 13:30 |只看该作者
回复 5# Shell_HAT


    哇噻,哇噻~求完整程序,求完整程序~

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2014-01-24 13:44 |只看该作者
  1. #!/bin/bash
  2. STR_LOOK=`awk '{printf $2"|"}' file1`
  3. STR_LOOK=${STR_LOOK%|}

  4. DATE_START=`date -d "-30 days" +"%Y-%m-%d"`
  5. DATE_END=`date +"%Y-%m-%d"`
  6. SEC_START=`date -d "$DATE_START" "+%s"`
  7. SEC_END=`date -d "$DATE_END" "+%s"`

  8. for((i=$SEC_START;i<=$SEC_END;i+=86400)); do
  9.     DATE_THIS=`date -d "@$i" "+%y%m%d"`
  10.     WEEK_NUM=`date -d "$DATE_THIS" "+%u"`
  11.     if [ $WEEK_NUM == 5 ]; then
  12.         grep -E "$STR_LOOK" $DATE_THIS/qacct
  13.     fi
  14. done
复制代码

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
9 [报告]
发表于 2014-01-24 13:55 |只看该作者
回复 8# Shell_HAT


    牛人。。。崇拜

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
10 [报告]
发表于 2014-01-24 23:55 |只看该作者
回复 8# Shell_HAT


    DATE_THIS=`date -d "@$i" "+%y%m%d"`

请教 @$i    的@ 是什么意思,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP