校准无空格分隔符

Pre*_*vac 3 text-processing cal calendar

我是 OpenBSD 用户,我正在编写一个 awk 脚本,它会为我教授的所有课程自动生成 TeX 课程日历。为了从系统中获取实际日历,我使用 Unix cal 命令。问题是 cal 命令的输出使用空格作为分隔符,当我将 nawk 脚本应用于它时,这会产生各种问题。我查看了 cal 的源代码,似乎除了破解源代码之外,没有什么会强制 cal 命令使用空格以外的分隔符。让日历看起来像这样的最简单方法是什么

        June 2012
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
Run Code Online (Sandbox Code Playgroud)

Mat*_*Mat 5

你可以用sed它。

$ cal|sed -e '1n;s/\(..\)\(.\)/\1,\2/g'
      May 2012      
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, 31
Run Code Online (Sandbox Code Playgroud)

1n打印第一行并移至下一行。替换然后三个三个字符并打印前两个,,然后是第三个。