从日期输出中删除前导零


40

我为date命令设置了别名,以以下格式显示日期:

2013.06.14.12.10.02

使用此命令:

alias date = date +"%Y.%m.%d.%H.%M.%S"

一切都很好,除了我想从输出中删除前导零。

无法通过更改格式来实现。我认为只能通过将输出传递给其他命令(例如sed和)来完成awk

我正在运行的操作系统是Ubuntu 12.04.2 LTS。


您的示例中没有尾随零(很好,除非您计算小时0后的10分钟数,但是删除该值会更改时间戳的含义)。我认为您的意思是前导零(每个日期部分开头的零),在这种情况下,如果您使用的是GNU用户空间,则@ j883376的答案可能会很有用。否则,请指定您的环境(用户界面工具在所有类似Unix的操作系统中并不相同,甚至并非所有工具都可在所有此类操作系统上使用)。
CVn

是的,标题是错误的,尽管帖子是正确的,对于造成的混乱,我们深表歉意。
easl 2013年

别担心。不过,一般而言,指定您的环境总是一件好事。OS X与OpenBSD不同,AIX与GNU不同。通过指定您的环境,您不会冒险获得对您没有用的答案(例如,当您尝试在OS X上解决问题时,建议使用Linux的/ proc的答案)。
CVn

2
请注意:请注意,删除前导零将使您更难以按日期排序。
Dubu 2014年

Answers:



4

感觉很傻,但是由于这个问题是用标记的/sed,因此您可以使用sed进行此操作,就像您提到的那样:)

alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.