date – unix – 获取工作日数
发布时间:2020-12-16 01:48:08 所属栏目:安全 来源:网络整理
导读:我正在使用AIX和ksh.我正在计算一个月的工作日数.我试图使用AWK,但我现在挂了. 这是我到目前为止所得到的: cal | awk '{print $2,$3,$4,$5,$6} | awk 'NR 2' 这是cal的正常输出(对于当前日期/时间): April 2014Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7
我正在使用AIX和ksh.我正在计算一个月的工作日数.我试图使用AWK,但我现在挂了.
这是我到目前为止所得到的: cal | awk '{print $2,$3,$4,$5,$6} | awk 'NR > 2' 这是cal的正常输出(对于当前日期/时间): April 2014 Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 以下是我使用该脚本获得的内容: 2 3 4 5 7 8 9 10 11 14 15 16 17 18 21 22 23 24 25 28 29 30 我的计划是,最后将这些行读入c程序并输出总工作日(现在我们不担心正常工作日的假期). 正如你在这里看到的那样,由于输出的第3行本身只有5列,所以它在那一周的第一个工作日下降了.也许我认为这一切都是错误的 – 如果在Unix操作系统或C语言中有另一种方法可以做到这一点:我对“cal”和“awk”没有任何感情依恋(至今尚未). 解决方法
这可以做到:
cal -h | cut -c 4-17 | tail -n +3 | wc -w 说明 cal在4个字符的列上显示行. -h关闭今天的突出显示. April 2014 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 由于星期日是第一列,星期六是最后一列,因此需要提取字符4和17之间的数字: $cal -h | cut -c 4-17 April 2014 Mo Tu We Th Fr 1 2 3 4 7 8 9 10 11 14 15 16 17 18 21 22 23 24 25 28 29 30 然后删除两个第一行: $cal -h | cut -c 4-17 | tail -n +3 1 2 3 4 7 8 9 10 11 14 15 16 17 18 21 22 23 24 25 28 29 30 然后计算单词数: $cal -h | cut -c 4-17 | tail -n +3 | wc -w 22 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |