ncal 命令问题查找星期一的数目

ncal command question find number of Mondays

如何使用 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

这三个步骤对应ncal后的以下三个命令:

#! /usr/bin/env bash
year=
ncal "$year" | grep '^Mo' | grep -wo 1 | wc -l