免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wmjie
打印 上一主题 下一主题

[原创]awk 计算星期几 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-08-11 06:20:00
41 [报告]
发表于 2010-04-26 14:18 |只看该作者
呵呵,还是不错的,不过,计算 1752 年 9月 1日之前的就不行了!

这个要仔细看日历改革的历史了!

论坛徽章:
0
42 [报告]
发表于 2010-04-27 00:05 |只看该作者
我重写了下这个脚本,发现一个很诡异的问题, 我的第二个if语句在首次判断时总是异常, 谁可以告诉下问题出在那里了。
我的系统版本ubuntu 9.10
Linux xxxx-laptop 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux
  1. echo "20100423" | awk '{ i=0; j=0;
  2.             mon = substr( $1, 5,2 )
  3.             year = substr( $1, 1,4 )
  4.             d = substr( $1, 7 )
  5.             print $1
  6.             while("cal $mon $year "| getline)
  7.             {
  8.                 i++;
  9.                 if(i<3)
  10.                     continue

  11.                 j = j+NF
  12.                 if(d>j)
  13.                     continue
  14.                   
  15.                 for( k=1;  k<=NF;  k++ )
  16.                 {
  17.                     if( i == 3 -a d==j-NF+k )
  18.                     {
  19.                         week = ( 7 - NF + k -1)
  20.                         break
  21.                     }
  22.                     else if(d==j-NF+k)
  23.                     {
  24.                         week = k == 1? 7: k-1
  25.                         break
  26.                     }
  27.                     else

  28.                  }
  29.                  print "got here" "j is " j
  30.                  print week
  31.                  #break
  32.            }
  33.        }'
复制代码
20100423
got herej is 3

got herej is 24
5
got herej is 30
5
got herej is 30
5

论坛徽章:
0
43 [报告]
发表于 2010-04-27 11:41 |只看该作者
  脚本,,,,,    谁给我份教程!!! 先谢过

论坛徽章:
0
44 [报告]
发表于 2010-04-27 11:48 |只看该作者
date首选,佩服你们的编程思想O(∩_∩)O~

论坛徽章:
0
45 [报告]
发表于 2010-04-27 12:46 |只看该作者
我重写了下这个脚本,发现一个很诡异的问题, 我的第二个if语句在首次判断时总是异常, 谁可以告诉下问题出 ...
zhangzhaoju 发表于 2010-04-27 00:05



    if( i == 3 -a d==j-NF+k )

-a 改成 &&

就可以了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
46 [报告]
发表于 2010-04-27 13:39 |只看该作者
回复 44# petercheng750


某些系统的date不支持这些计算

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
47 [报告]
发表于 2010-04-27 13:40 |只看该作者
回复 43# HUSSCI


[电子书下载]ChinaUnix论坛Shell版精华帖合集
http://bbs.chinaunix.net/thread-1640835-1-1.html

UNIX Shell 教程和电子书
http://bbs.chinaunix.net/thread-1400230-1-1.html

《Linux命令、编辑器、Shell编程实例大全》PDF版网盘下载地址
http://bbs.chinaunix.net/thread-1684983-1-3.html

Advanced Bash-Scripting Guide 3.9.1 中文版.pdf
http://bbs.chinaunix.net/thread-1610033-1-1.html

Bash中文参考手册
http://bbs.chinaunix.net/thread-1598795-1-1.html

Bash新手指南 chm版
http://bbs.chinaunix.net/thread-1241173-1-1.html

Bash初学者常见错误
http://bbs3.chinaunix.net/thread-503842-1-1.html

Linux Shell Scripting Tutorial (LSST) v2.0.pdf & Bash FAQ wiki
http://bbs.chinaunix.net/thread-1635172-1-1.html

Unix Shell编程 第三版
http://bbs.chinaunix.net/thread-1508120-1-1.html

Unix Shell范例精解第4版中文高清PDF版
http://bbs.chinaunix.net/thread-1505626-1-1.html

论坛徽章:
0
48 [报告]
发表于 2010-04-27 18:46 |只看该作者
AWK: printf(), strftime(), systime():


BEGIN {
        now = systime()
        mesg = strftime("Started at %m/%d/%Y %H:%M:%S", now)
        print mesg
}
process data ...
END {
        now = systime()
        mesg = strftime("Ended at %m/%d/%Y %H:%M:%S", now)
        print mesg
}

...

unix 下的 cal 没有办法具体计算 哪天是星期几,写了个 awk 计算:
wmjie 发表于 2010-04-22 19:21

论坛徽章:
0
49 [报告]
发表于 2010-04-29 11:43 |只看该作者
嗯,我承认我都看不懂

论坛徽章:
0
50 [报告]
发表于 2010-05-01 21:27 |只看该作者
牛叉 犀利
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP