LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: battosai

合并:日期时间处理 [keywords:date 年月日 日历 时间]

[复制链接]
 楼主| 发表于 2003-12-5 15:19:11 | 显示全部楼层
晕,想删多余的贴,竟然。。。。。

你没有权限访问此页。有可能是由于下列原因之一造成的:
你没有你尝试访问的页面的权限。你是不是在尝试编辑别人的帖子,或者尝试使用管理功能?请查阅论坛规定中你可以执行的动作。
如果你正尝试发帖,管理员可能禁止了你的账号,或者账号现在正等待验证激活。
已登录用户: battosai [退出]


发表于 2003-12-5 16:29:22 | 显示全部楼层
[/home/javalee/myshell]cat data      #这是我作的一个"样本文件"
20030825|1231005010|1231005010|200000.0|6.3
20030829|1231017864|1231017864|10000.0|6.975
20030827|1231017911|1231017911|200000.0|6.6375
20030828|1231021548|1231021548|20000.0|6.975
20030824|1231023511|1231023511|15000.0|6.3
20030823|1231024763|1231024763|10000.0|7.3125
20030822|1231030010|1231030010|60000.0|7.3125
20030821|1231042038|1231042038|40000.0|6.6375
20030820|1231042190|1231042190|20000.0|6.975
20030826|1231053035|1231053035|30000.0|6.975
20030819|1231053510|1231053510|50000.0|6.975
20030818|1231054277|1231054277|50000.0|6.6375
  1. [/home/javalee/myshell]cat sd
  2. #!/bin/ksh
  3. read date?"您要哪天的数据(e.g. 20030811):"
  4. read day?"您要几天的数据(e.g. 8):"
  5. sort data|grep -A$day "\<$date\>"
复制代码
结果:
[/home/javalee/myshell]ksh sd
您要哪天的数据(e.g. 20030811):20030823
您要几天的数据(e.g. 8):4
20030823|1231024763|1231024763|10000.0|7.3125
20030824|1231023511|1231023511|15000.0|6.3
20030825|1231005010|1231005010|200000.0|6.3
20030826|1231053035|1231053035|30000.0|6.975
20030827|1231017911|1231017911|200000.0|6.6375
[/home/javalee/myshell]
不知道是不是这个意思~~
BTW: :sorry,你的贴子我删多啦~~
发表于 2003-12-6 00:12:42 | 显示全部楼层
  1. delta_y=$( echo $DATE_need | cut -b1-4 )
  2. let delta_y=$delta-$( date +%Y )
  3. delta_m=$( echo $DATE_need | cut -b5-6 )
  4. let delta_m=$delta-$( date +%m )
  5. delta_d=$( echo $DATE_need | cut -b7-8 )
  6. let delta_d=$delta-$( date +%d )
  7. delta=$( expr $delta_y \* 365 + $delta_m \* 30 + delta_d )
  8. base=$( date -d "+$delta day" +%Y%m%d)
  9. if (( $base < $DATE_need )) ; then
  10.      let step=1
  11. else let step=-1
  12. fi
  13. whille (( $base != $DATE_need ))
  14. do
  15. let delta=$delta+$step
  16. base=$( date -d "+$delta day" +%Y%m%d)
  17. done
  18. COUNTER=0
  19. while (( $COUNTER < $NDAY_need ))
  20. do
  21. date -d "+$delta day" +%Y%m%d
  22. let delta++
  23. let COUNTER++
  24. done
复制代码

Please test
I am so sleeppy. Sorry.
发表于 2003-12-6 00:53:07 | 显示全部楼层
看来我理解错啦楼主的意图了? :ask
 楼主| 发表于 2003-12-8 16:06:44 | 显示全部楼层

哎,真是惭愧~~~!

我还说man date得不到答案  哎,哎~~~~~
CU上
  1. date +%H%m%d-d "$DATE_need $COUNTER days next"
复制代码


另 lordbyorn 兄的代码也可以实现的,谢谢呀
发表于 2003-12-28 20:23:57 | 显示全部楼层

请教如何编写这样的shell脚本???

我需要写一个每天自动运行的脚本,运行一个.pl程序,该程序需要一个以当天时间命名的文件名作参数,eg: #a.pl ex20031229.txt
请教如何实现???谢谢!
发表于 2003-12-28 20:47:00 | 显示全部楼层
# touch `date +%Y%m%d`.txt
20031228.txt      

请注意`是主键盘的最上左角的键。
发表于 2003-12-28 22:33:08 | 显示全部楼层
.pl是perl脚本吧~~,perl编程方面的问题可以到:
http://www.linuxsir.cn/bbs/forumdisplay.php?forumid=77
发表于 2003-12-29 11:10:55 | 显示全部楼层

请教:这样的命令如何写?

#./awstats.pl -config=cmodeday -update -logfile=/mnt/log/ex03<mm><dd>.log -showsteps

其中<mm> <dd>要换成2位数的当前月和日期,这个命令应该如何写?
要是它每天自动运行,应如何处理?
发表于 2003-12-29 11:19:45 | 显示全部楼层
#./awstats.pl -config=cmodeday -update -logfile=/mnt/log/ex03$(date +%m%d).log -showsteps
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表