如何在“cal”命令中通过颜色强调假期

如何在“cal”命令中通过颜色强调假期

我想通过颜色cal或类似命令来强调假期。

我使用的是 OS X 和 Ubuntu 14,有没有简单的方法来启用该功能?

答案1

我不认为这是可能的标准cal,但你可能想看看gcalGNU 日历

要突出显示您需要传递-H选项的文本:

-H text
--highlighting=text
    Set highlighting sequence / marking character pairs explicitly.
    In this sense, highlighting sequences are control character sequences 
    which cause a color or intensity switch in output text. Typical control 
    character sequences are the ANSI escape sequences [...]

甚至还有精确突出显示假期的示例手册:

For example:

-H \x20:\x20:\x1:# respectively
--highlighting=\x20:\x20:\x1:#
marks the actual day like ‘\x20actual date\x20’6 and the holiday date like 
‘\x1holiday date#’ using the given marking characters. 

-H \x1b[34;42m:\x1b[0;40m or
-H \033[34;42m:\033[0;40m or
-H \E[34;42m:\E[0;40m
defines a starting ANSI escape highlighting sequence ‘\x1b[34;42m’ used for 
actual day and ending ANSI escape highlighting sequence ‘\x1b[0;40m’ with no 
given highlighting sequence for holidays, so default highlighting sequences for 
holidays are used (non-given entries are always skipped).

例子:

  • 要以蓝色突出显示当前日期,并以绿色突出显示当月美国/阿拉斯加 (US_AK) 的节假日:

    gcal -H '\e[34m:\e[0m:\e[32m:\e[0m' -q US_AK
    

    注:34是前景蓝色的 ANSI 代码,32是前景绿色的 ANSI 代码

    结果:

    在此输入图像描述

  • 2014 年全年,31以绿色背景 ( ) 上的红色 ( ) 显示当天,以洋红色 ( ) 上的黄色 ( )42显示中国 ( ) 假期CN3345

    gcal -H '\e[31;42m:\e[0m:\e[33;45m:\e[0m' -q CN 2014
    

info gcal您将在选项说明下找到所有国家/地区代码-q

相关内容