Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2079541
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-04-09 13:53:08

文件名:aaa.txt
文本中有这么一行:
2009-04-09 09:43:24 [831832] [WRN] ActiveCall=121 ,ShakehandOvertime=0, ExceedMaxTalkTime=0 CallIn=791 DisconnectNoResource=0
取得这行的2009-04-09 09:43:24时间,需要跟系统的当前时间做比较,需要看这个时间差是否大于5分钟。
AIX系统,不支持strftime,不支持stat,并且date不支持 -d,请问该怎么做,谢谢



您对本贴的看法:
| |

大法师
南无阿弥陀佛



CU编号: 717395
注册:2008-6-13
最后登录: 2009-04-09
帖子:
精华:0







来自:土星
状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-4-9 10:13 
回复 #1 sea_soft 的帖子




您对本贴的看法:

__________________________________

穷则独善其身,达则兼济天下。鞋儿破,帽儿破,身上的袈裟破, 你笑我,他笑我,一把扇儿破。南无阿弥陀佛,南无阿弥陀佛。
| |
  帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-04-09
帖子:
精华:0







来自:长春
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-9 10:27 
回复 #1 sea_soft 的帖子

可以反过来考虑,不处理文本中的时间,利用脚本获取当前时间前5分钟的时间,然后直接字符串比较大小。
获取N分钟前的时间,本版有现成的脚本,你可以搜一搜。



您对本贴的看法:

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
| |

骑士




CU编号: 579018
注册:2007-6-22
最后登录: 2009-04-09
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-9 10:35 


QUOTE:
原帖由 ly5066113 于 2009-4-9 10:27 发表
可以反过来考虑,不处理文本中的时间,利用脚本获取当前时间前5分钟的时间,然后直接字符串比较大小。
获取N分钟前的时间,本版有现成的脚本,你可以搜一搜。

谢谢老大,如果知道两个时间字符串,怎么比较他们的大小呢,谢谢
比如是:
a="2009-04-08 23:59:51"
b="2009-04-09 00:02:11"



您对本贴的看法:
| |

大法师
南无阿弥陀佛



CU编号: 717395
注册:2008-6-13
最后登录: 2009-04-09
帖子:
精华:0







来自:土星
状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-4-9 10:37 


QUOTE:
原帖由 sea_soft 于 2009-4-9 10:35 发表

谢谢老大,如果知道两个时间字符串,怎么比较他们的大小呢,谢谢
比如是:
a="2009-04-08 23:59:51"
b="2009-04-09 00:02:11"

2楼的方法?



您对本贴的看法:

__________________________________

穷则独善其身,达则兼济天下。鞋儿破,帽儿破,身上的袈裟破, 你笑我,他笑我,一把扇儿破。南无阿弥陀佛,南无阿弥陀佛。
| |
版主   帅哥 (孩儿他爹㊞)
广告杀手-老法王



CU编号: 17255
注册:2002-8-26
最后登录: 2009-04-09
帖子:
精华:







来自:中国南京
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-9 10:38 
回复 #4 sea_soft 的帖子

直接按字符串比较就行了
[ "$str1" \> "$str2" ]



您对本贴的看法:

__________________________________

=GNU/linux=
GNU {bash 2.05b, grep 2.5, Awk 3.1.3, sed 4.0.8}

导师说:站起来吧
众人说:那么辛苦那么艰苦到底值不值?

设计师说:富起来吧
众人说:拼啦

| |
  帅哥
精灵使



荣誉会员  
CU编号: 51102
注册:2003-4-9
最后登录: 2009-04-09
帖子:
精华:0







来自:北京、深圳
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-9 10:53 
AIX下,这样需求的脚本的难度是如何取5分钟前,用perl最方便。
file=aaa.txt
duration=300

DateInFile=`awk -F'[- :]' '{print $1$2$3$4$5$6}' $file`
FiveMinsAgo=`perl -le '@a=localtime(time-"'"$duration"'"); printf("%04d%02d%02d%02d%02d%02d\n",$a[5]+1900,$a[4]+1,$a[3],$a[2],$a[1],$a[0]);'`

[ $DateInFile -gt $FiveMinsAgo ]  && echo Small than 5 minutes! || echo Big than 5 minutes!

[ 本帖最后由 beginner-bj 于 2009-4-9 10:57 编辑 ]



您对本贴的看法:

__________________________________

IBM Certified Advanced DBA for DB2 UDB V8

我的博客: http://blog.chinaunix.net/index.php?blogId=739
欢迎访问,并请多多批评指正。
| |

骑士




CU编号: 579018
注册:2007-6-22
最后登录: 2009-04-09
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-9 11:20 


QUOTE:
原帖由 waker 于 2009-4-9 10:38 发表
直接按字符串比较就行了
[ "$str1" \> "$str2" ]

谢谢楼上各位我想把下面的串给一个变量,但总是报错
saa=`printf "%dSeconds ago is:%d-%02d-%02d %02d:%02d:%02d" $var1 $Y $m $d $H $M $S`
echo "saa="$saa
错误为:
./monitor.sh[42]: saa=360Seconds:  not found
请问怎么解决
谢谢



您对本贴的看法:
| |

风云使者
皇家救星



CU编号: 796256
注册:2008-12-20
最后登录: 2009-04-09
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-9 12:57 
awk -F \[ -v date=`date +%Y%m%d%H%M%S`  '{
        tmp=$1;
        gsub("[^0-9]", "", tmp);
        diff=date  - tmp;
        if (diff > 500 || diff < -500) {print $0}
}'  a.txt



您对本贴的看法:
阅读(895) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~