如何使用 shell/perl 脚本获取一个月的第二个星期六? [关闭]
Posted
技术标签:
【中文标题】如何使用 shell/perl 脚本获取一个月的第二个星期六? [关闭]【英文标题】:How to get second saturday of a month using shell/perl script? [closed] 【发布时间】:2016-07-06 08:51:18 【问题描述】:请提供脚本代码以找出一个月内的第二个星期六
【问题讨论】:
您能否向我们展示您迄今为止的努力以及您遇到的问题?请注意How to Ask。 【参考方案1】:你可以像这样使用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
$
【讨论】:
【参考方案2】:很简单:
$ cal | sed -n '4s/^.* //gp'
12
这将打印本月第二个星期六(2016 年 3 月)的日期。如果你想要 1959 年 3 月的第二个星期六:
$ cal 3 1959 | sed -n '4s/^.* //gp'
14
如果您想要第一个星期六将4s
替换为3s
,如果您想要第三个星期六使用5s
...
【讨论】:
我的 cal(在 Linux 上)在这些行中有 2 个尾随空格,因此您的管道失败。 Cut 可能是一个更可靠的选择,并且也适用于一周中的其他日子。以上是关于如何使用 shell/perl 脚本获取一个月的第二个星期六? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在n个月内使用sql(无程序)获取每个月的第一天和最后一天