高分求教awk的问题!!!!!!

love_u_qt 2012-06-28 10:43:15
公司有段awk的脚本,找了很多材料,还是看不懂~求各位赐教!


BEGIN {
"date +%H%M"|getline NOW
TN=1NOW
QN=TN-10000
}

{
if($0 ~ /^.*finish.html.*$/)
{
DATE=getHourAndMinutes($4)
TD=1DATE
QD=TD-10000
DF=(QN%100) ? QN-10 : QN-50;
if((QD > DF) && (QD <= QN))
{
ID=getId()
TIMES[DATE"\t"ID]++
}
}
}


begin里的这三句:
"date +%H%M"|getline NOW #完全不知道什么一起。。
TN=1NOW #是在获取当前时间戳吗?
QN=TN-10000 #因为TN就不知道什么意思,所以这个也不知道。。。

action里的:
TD=1DATE #1DATE是什么意思?DATE是时+秒(如0921)
QD=TD-10000 #TD不知道是什么东西。。。
TIMES[DATE"\t"ID]++ #这个也不知道什么意思。。。。

很着急~麻烦大家了!!!
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-06-28
  • 打赏
  • 举报
回复
就是统计某个id某个时间点出现过几次,还有些东西你得根据脚本用途判断判断
justkk 2012-06-28
  • 打赏
  • 举报
回复
"date +%H%M"|getline NOW
是相当于“NOW = 201206281127”吗?

前面的date命令指定格式了,只输出小时和分钟,总共4位


\t表示<TAB>,不是字母t
那个数组元素,初值为0
love_u_qt 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

"date +%H%M"|getline NOW #完全不知道什么一起。。
获取当前时间,存入变量NOW

TN=1NOW #是在获取当前时间戳吗?
在变量NOW的值的前面添加一个数字1,然后构造变量TN

QN=TN-10000 #因为TN就不知道什么意思,所以这个也不知道。。。
定义一个新的变量QN,赋值为变量TN减去10000


TIMES[DATE"\t"ID]++……
[/Quote]
谢谢你的帮助!
但有几个地方我不知道我理解的对不对,比如现在是20120628 11:27

"date +%H%M"|getline NOW
是相当于“NOW = 201206281127”吗?

TIMES[DATE"\t"ID]++
是相当于“TIME[1127"t"2]++”吗?
那既然是定义一个数组元素,还没有给它赋值,为什么就自增++了?这个数组元素的值是什么呢?



justkk 2012-06-28
  • 打赏
  • 举报
回复
"date +%H%M"|getline NOW #完全不知道什么一起。。
获取当前时间,存入变量NOW

TN=1NOW #是在获取当前时间戳吗?
在变量NOW的值的前面添加一个数字1,然后构造变量TN

QN=TN-10000 #因为TN就不知道什么意思,所以这个也不知道。。。
定义一个新的变量QN,赋值为变量TN减去10000


TIMES[DATE"\t"ID]++ #这个也不知道什么意思。。。。
定义一个数组TIMES,下标就是里面拼的那个东西
love_u_qt 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

感觉是这样
你可以添加print语句显示一下

BEGIN {
"date +%H%M"|getline NOW
TN=1NOW
QN=TN-10000
print NOW,TN,QN
}
[/Quote]

嗯确实是,我再琢磨琢磨~~~
谢谢你啊!!!
justkk 2012-06-28
  • 打赏
  • 举报
回复
感觉是这样
你可以添加print语句显示一下

BEGIN {
"date +%H%M"|getline NOW
TN=1NOW
QN=TN-10000
print NOW,TN,QN
}
love_u_qt 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

"date +%H%M"|getline NOW
是相当于“NOW = 201206281127”吗?

前面的date命令指定格式了,只输出小时和分钟,总共4位


\t表示<TAB>,不是字母t
那个数组元素,初值为0
[/Quote]

"date +%H%M"|getline NOW
TN=1NOW
QN=TN-10000

那这三行是这样吗(如现在是13:58):
NOW = 1358
TN = 11358
QN = 11358 - 10000 = 1358

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧