![如何打印 2015 年 3 月和 4 月的日历并并排显示日历条目?使用UNIX](https://linux22.com/image/5553/%E5%A6%82%E4%BD%95%E6%89%93%E5%8D%B0%202015%20%E5%B9%B4%203%20%E6%9C%88%E5%92%8C%204%20%E6%9C%88%E7%9A%84%E6%97%A5%E5%8E%86%E5%B9%B6%E5%B9%B6%E6%8E%92%E6%98%BE%E7%A4%BA%E6%97%A5%E5%8E%86%E6%9D%A1%E7%9B%AE%EF%BC%9F%E4%BD%BF%E7%94%A8UNIX.png)
如何打印 2015 年 3 月和 4 月的日历并并排显示日历条目?在UNIX中
答案1
这个命令:
paste <(cal 3 2015 | awk '{printf "%-20s\n",$0}') <(cal 4 2015)
将创建此输出:
March 2015 April 2015
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25
29 30 31 26 27 28 29 30
注意: awk 子命令用于正确填充左侧命令的最后一行。
编辑:利用cal
功能(选项-3
)并且需要更少流程的更紧凑的变体可能是:
cal -3 3 2015 | awk '{print substr($0,23)}'
答案2
如果您的cal
支持-A
参数很容易显示更多月份 - 您可以显示当前和一未来的一个月是这样的:
cal -A1
这样,您还可以使用选项指定显示当前月份和年份以外的内容-m
,例如2015年3月这将是:
cal -A1 -m3 2015
但如果你不能使用,-A
你可以将两个输出与pr
:
pr -t -m <(cal <your_params>) <(cal <your_params>)
或与paste
:
paste <(cal <your_params>) <(cal <your_params>)
答案3
cal -3| awk '{print substr($0,23)}'