免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: PharaohNie
打印 上一主题 下一主题

[日期时间] 【已解决】有什么方法能把非工作时间的数据删除 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-07-01 09:45 |只看该作者
只去除非工作时间没问题。
  1. cat aaa | awk -F '[, ]' '$3>="07:00:00"&&$3<"19:00:00"' | more
  2. bjenet.traffic.hpm6509.TenGigabitEthernet1_2#dian_xin.in,2014-06-02 16:32:00,1234540792.0
  3. bjenet.traffic.hpm6509.TenGigabitEthernet1_2#dian_xin.in,2014-06-02 16:33:00,1236734487.0
  4. bjenet.traffic.hpm6509.TenGigabitEthernet1_2#dian_xin.in,2014-06-02 16:34:00,1386642974.0
  5. bjenet.traffic.hpm6509.TenGigabitEthernet1_2#dian_xin.in,2014-06-02 16:35:00,1187887437.0
  6. bjenet.traffic.hpm6509.TenGigabitEthernet1_2#dian_xin.in,2014-06-02 16:36:00,1234163411.0
复制代码
我是mac系统,date -d这个参数肯定是不对的,如下:
  1. -d dst  Set the kernel's value for daylight saving time.  If dst is non-zero, future calls to gettimeofday(2) will return a non-zero for tz_dsttime.
复制代码
我试着去除非工作日,就报错了。如下:
  1. cat aaa | awk -F '[, ]' '{cmd="date +%w -j -f %Y-%m-%d $2"; cmd|getline w; if(w>=1&&w<=5)print}'
  2. date: illegal time format
  3. usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
  4.             [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
复制代码

论坛徽章:
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
12 [报告]
发表于 2014-07-01 09:49 |只看该作者
回复 10# PharaohNie


    你的系统是什么环境? date是啥版本?
  1. linux 下的 gnu date:
  2. %w    一星期中的第几日(0-6),0 代表周一
复制代码

论坛徽章:
0
13 [报告]
发表于 2014-07-01 09:52 |只看该作者
回复 12# 关阴月飞


mac下的date也支持+%w的,如下
  1. date +%w
  2. 2
复制代码

论坛徽章:
0
14 [报告]
发表于 2014-07-01 14:37 |只看该作者
终于解决了。
  1. cat aaa | gawk -F '[, ]' '$3>="07:00:00"&&$3<"19:00:00" {split($2,a,"-");if(strftime("%w", mktime(a[1]" "a[2]" "a[3]" 0 0 0"))>0 &&strftime("%w", mktime(a[1]" "a[2]" "a[3]" 0 0 0"))<6) print}' | gawk -F',' '{sum+=$3} END {printf "Average = %0.2f\n", sum/NR}'
复制代码

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
15 [报告]
发表于 2014-07-01 14:38 |只看该作者
回复 14# PharaohNie
不错不错,mark下,date命令不是很强的系统下的解法。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP