从日期输出中删除前导零

eas*_*asl 56 sed awk date

我创建了 date 命令的别名以按以下格式显示日期:

2013.06.14.12.10.02

使用这个命令:

alias date = date +"%Y.%m.%d.%H.%M.%S"
Run Code Online (Sandbox Code Playgroud)

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

没有办法通过改变格式来实现它。我认为它只能通过将输出传输到其他命令来完成,例如sedawk

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

j88*_*376 99

根据 GNUdate联机帮助页:

   By default, date  pads  numeric  fields  with  zeroes.   The  following
   optional flags may follow '%':

   -      (hyphen) do not pad the field
Run Code Online (Sandbox Code Playgroud)

因此你可以做

alias date="date '+%Y.%-m.%-d.%-H.%-M.%-S'"
Run Code Online (Sandbox Code Playgroud)

并接收

2013.6.14.3.19.31
Run Code Online (Sandbox Code Playgroud)


小智 7

感觉很傻,但由于这个问题被标记为/sed,这是一种使用 sed 执行此操作的方法,正如您所提到的 :)

alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'
Run Code Online (Sandbox Code Playgroud)