我为 date 命令创建了一个别名,以按以下格式显示日期:
2013.06.14.12.10.02
使用这个命令:
alias date = date +"%Y.%m.%d.%H.%M.%S"
一切都很好,除了我想从输出中删除前导零。
没有办法通过改变格式来实现这一点。我认为这只能通过将输出管道传输到其他命令(如sed
和 )来完成awk
。
我运行的操作系统是 Ubuntu 12.04.2 LTS。
答案1
根据 GNUdate
手册页:
By default, date pads numeric fields with zeroes. The following
optional flags may follow '%':
- (hyphen) do not pad the field
因此你可以做
alias date="date '+%Y.%-m.%-d.%-H.%-M.%-S'"
并收到
2013.6.14.3.19.31
答案2
感觉很愚蠢,但由于这个问题被标记为/sed
,所以这是一种使用 sed 执行此操作的方法,正如您所提到的:)
alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'
注意下面的评论。他们对于删除*
, 以及删除g
第一个 sed 表达式中的选项有非常有效的观点。我不想在没有测试的情况下修改上面写的内容,而且我现在没有时间。斯科特下面的评论将常识融入到这个答案中。
答案3
XFCE 设置0
时间前面为 no
%l:%M %p
答案4
使用printf
可以给你一些灵活性。
例如:
/usr/bin/date "+%b %-2d %-H" | xargs printf "%s %2d %02d"