求助 文本中的时间提取

sh/bash/dash/ksh/zsh等Shell脚本
回复
zeng8809
帖子: 19
注册时间: 2010-07-06 23:58
送出感谢: 2 次
接收感谢: 0

求助 文本中的时间提取

#1

帖子 zeng8809 » 2012-03-30 11:23

有这样一行文本:
Recovery Manager: Release 10.2.0.5.0 - Production on Tue Mar 27 03:30:01 2012
请问怎么把时间串03:30:01更好地提取出来呢?
O(∩_∩)O希望各位为小弟解答解答
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30
送出感谢: 2 次
接收感谢: 31 次

Re: 求助 文本中的时间提取

#2

帖子 aerofox » 2012-03-30 12:16

代码: 全选

grep -o '[0-2][0-9]:[0-5][0-9]:[0-5][0-9]'
不存在其它跟时间串类似的字符串(如aa:bb:cc)是,也可以简单一点:

代码: 全选

grep -o '..:..:..'
头像
Think1st
帖子: 45
注册时间: 2012-02-07 23:08
送出感谢: 1 次
接收感谢: 2 次

Re: 求助 文本中的时间提取

#3

帖子 Think1st » 2012-03-30 12:17

代码: 全选

echo "Recovery Manager: Release 10.2.0.5.0 - Production on Tue Mar 27 03:30:01 2012" | grep -o ' [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\} '
在这里,问题比答案更抢手。
fnan
帖子: 919
注册时间: 2009-07-01 22:04
送出感谢: 0
接收感谢: 13 次

Re: 求助 文本中的时间提取

#4

帖子 fnan » 2012-03-30 20:50

grep -Eo '[0-9]+:[^ ]+'
#一种选择。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
cqcyj222
帖子: 170
注册时间: 2008-04-01 21:20
送出感谢: 0
接收感谢: 0

Re: 求助 文本中的时间提取

#5

帖子 cqcyj222 » 2012-04-12 22:46

echo "Recovery Manager: Release 10.2.0.5.0 - Production on Tue Mar 27 03:30:01 2012" | awk '{print $11}'
:em39
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 求助 文本中的时间提取

#6

帖子 eexpress » 2012-04-13 9:13

[0-9:]{8}

其实,你这情况,还不如cut,倒数第2段而已。别蛋疼了。
● 鸣学
回复

回到 “Shell脚本”