You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用cal命令提取当前日期数字(禁止使用date +%d)

从cal输出提取当前日期数字的方法

可以利用cal命令输出中当前日期会被ANSI反显格式标记的特性,通过正则匹配提取目标数字:

cal | grep -oP '\x1b\[7m\K\d+'

命令解释:

  • cal:输出当前月份的日历
  • grep -oP:-o只输出匹配的部分,-P启用Perl兼容正则表达式
  • \x1b\[7m:匹配ANSI反显的起始转义序列(\x1b是ESC字符,[7m表示反显模式)
  • \K:正则断言,忽略前面匹配的内容,只保留后面的数字
  • \d+:匹配1个或多个数字,也就是当前日期的数字(比如2或02,取决于cal的输出格式)

如果你的cal版本输出的日期个位数前面没有补零(比如显示 2而不是02),可以用下面的命令补零,统一输出两位数字:

cal | grep -oP '\x1b\[7m\K\s?\d+' | sed 's/ //g' | awk '{printf "%02d\n", $0}'

补充说明:

这种方法完全依赖cal的输出特性,不同系统的cal可能略有差异,但大部分类Unix系统的cal都会用ANSI反显标记当前日期,所以这个方法通用性较强。

内容的提问来源于stack exchange,提问作者Lib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:05:27