如何使用shell / perl脚本获得一个月的第二个星期六?

时间:2016-03-19 16:15:23

标签: perl shell

请提供脚本代码以查找一个月内的第二个星期六

2 个答案:

答案 0 :(得分:2)

您可以使用DateTime::Format::Natural模块,例如

$ echo 2nd saturday in april | perl -MDateTime::Format::Natural -E 'say DateTime::Format::Natural->new->parse_datetime(<>)->mdy'

输出

04-09-2016

或者该模块附带了一个命令行工具dateparse,其工作原理如下

$ dateparse

dateparse> 2nd saturday in april
2016-04-09 00:00:00

dateparse> q

$

答案 1 :(得分:0)

非常简单:

$ cal | sed -n '4s/^.* //gp'
12

这将打印本月第二个星期六的日期(2016年3月)。如果你想要1959年3月的第二个星期六:

$ cal 3 1959 | sed -n '4s/^.* //gp'
14

如果您希望第一个星期六将4s替换为3s,如果您希望第三个星期六使用5s ...