免费注册 查看新帖 |

Chinaunix

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

[文本处理] date 取小时的问题 [复制链接]

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-26 15:24 |只看该作者 |倒序浏览
我想用date 把小时取出来,TIME1 为前一个小时,

这样问题就出现了,比如TIME 03     那么减法后,TIME1就是2 了。这样格式不对了,我想取出前一个小时个格式是02,这样有什么办法吗?

先谢谢了。

TIME=`date | awk '{print $5}' | awk -F\: '{print $1}'`
TIME1=`expr $TIME - 1`

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
2 [报告]
发表于 2013-02-26 15:35 |只看该作者
本帖最后由 zongg 于 2013-02-26 15:35 编辑

或者说我怎么才能取到前一个小时,格式是01-09   不要1-9  ,因为我想取日志,日志里面的格式是01-09 这样的。

论坛徽章:
0
3 [报告]
发表于 2013-02-26 15:40 |只看该作者
仅仅取小时:
time=`date | awk '{print $4}' | awk -F':' '{print $1}'`
echo $time

取前一小时
time=`date -d "-1 hour" "+%Y-%m-%d-%H" | awk -F'-' '{print $4}'`
echo $time

希望对你有帮助!

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
4 [报告]
发表于 2013-02-26 15:41 |只看该作者
  1. TIME1=`printf %02d $(expr $time - 1)`
复制代码

论坛徽章:
0
5 [报告]
发表于 2013-02-26 15:47 |只看该作者
本帖最后由 todayhero 于 2013-02-26 15:48 编辑
  1. [root@GO-EMAIL-1 ~]# date
  2. Tue Feb 26 15:51:22 CST 2013
  3. [root@GO-EMAIL-1 ~]# date -d '-12 hour' '+%I'
  4. 03
复制代码
给你例子看看,是要这个吧!取12小时前的那个小时。

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
6 [报告]
发表于 2013-02-26 15:50 |只看该作者
Baby果冻 发表于 2013-02-26 15:40
仅仅取小时:
time=`date | awk '{print $4}' | awk -F':' '{print $1}'`
echo $time


谢谢,非常有帮助。man date 怎么找不着有关时间的加减问题?应该man 什么啊。

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
7 [报告]
发表于 2013-02-26 15:52 |只看该作者
todayhero 发表于 2013-02-26 15:47
给你例子看看,是要这个吧!取12小时前的那个小时。



呵呵,就是想要这个,非常感谢。

论坛徽章:
0
8 [报告]
发表于 2013-02-26 15:57 |只看该作者
回复 6# zongg


    man里面我也没找到,是百度来的。上面大虾的简洁,我也学习了!

论坛徽章:
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 [报告]
发表于 2013-02-26 16:47 |只看该作者
回复 6# zongg

take a look ...

$ man date
...
DATE STRING
       The --date=STRING is a mostly free format human  readable  date  string
       such  as  "Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or
       even "next Thursday".  A date string may contain items indicating  cal‐
       endar  date,  time of day, time zone, day of week, relative time, rela‐
       tive date, and numbers.  An empty string indicates the beginning of the
       day.   The date string format is more complex than is easily documented
       here but is fully described in the info documentation.

...

$ info date
Note: move to 21.1.7 to see more information

21.1.7 Examples of `date'
-------------------------

Here are a few examples.  Also see the documentation for the `-d'
option in the previous section.

   * To print the date of the day before yesterday:

          date --date='2 days ago'

   * To print the date of the day three months and one day hence:

          date --date='3 months 1 day'

   * To print the day of year of Christmas in the current year:

          date --date='25 Dec' +%j
...

论坛徽章:
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
10 [报告]
发表于 2013-02-26 17:01 |只看该作者
回复 5# todayhero

建议还是用 %H 吧, 24小时制清晰一点.


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP