我是一名 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
答案1
你可以用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
1n
打印第一行并移至下一行。然后,替换将字符三个三个地打印,然后打印前两个,然后,
打印第三个。