如何使用cal命令查找给定年份中每个月的第一天是星期一的个数?到目前为止,我已经尝试遍历包含Mo
的每一行。ncal 2021 | grep Mo
在ncal格式下很简单。以下是ncal 2012
的输出:
2012
January February March April
Su 1 8 15 22 29 5 12 19 26 4 11 18 25 1 8 15 22 29
Mo 2 9 16 23 30 6 13 20 27 5 12 19 26 2 9 16 23 30
Tu 3 10 17 24 31 7 14 21 28 6 13 20 27 3 10 17 24
We 4 11 18 25 1 8 15 22 29 7 14 21 28 4 11 18 25
Th 5 12 19 26 2 9 16 23 1 8 15 22 29 5 12 19 26
Fr 6 13 20 27 3 10 17 24 2 9 16 23 30 6 13 20 27
Sa 7 14 21 28 4 11 18 25 3 10 17 24 31 7 14 21 28
May June July August
Su 6 13 20 27 3 10 17 24 1 8 15 22 29 5 12 19 26
Mo 7 14 21 28 4 11 18 25 2 9 16 23 30 6 13 20 27
Tu 1 8 15 22 29 5 12 19 26 3 10 17 24 31 7 14 21 28
...
你如何手工解决这个任务?
- 只看以
Mo
开头的行 - 在这些行中搜索
1
。 - 记录已发现
1
s的总数
这三个步骤对应ncal
后面的三个命令:
#! /usr/bin/env bash
year=$1
ncal "$year" | grep '^Mo' | grep -wo 1 | wc -l