我是一个OpenBSD用户,我正在编写一个awk脚本,它自动为我所教的所有课程生成TeX课程日历。要从系统中获取实际日历,我使用Unix命令。问题是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发布于 2012-05-29 06:11:51
你可以用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, 311n打印第一行并移到下一行。替换之后,取三个字符,然后打印前两个,然后是,,然后再打印第三个。
https://unix.stackexchange.com/questions/39577
复制相似问题