Sed

從日期輸出中刪除前導零

  • December 14, 2021

我創建了 date 命令的別名,以以下格式顯示日期:

2013.06.14.12.10.02

使用這個命令:

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

一切都很好,除了我想從輸出中刪除前導零。

沒有辦法通過改變格式來實現它。我認為只能通過將輸出傳遞到其他命令(如sed和)來完成awk

我正在執行的作業系統是 Ubuntu 12.04.2 LTS。

根據 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

感覺很傻,但是因為這個問題被標記/sed

alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'

注意下面的評論。他們對刪除*, 和刪除g第一個 sed 表達式中的選項有非常有效的觀點。我寧願在沒有測試的情況下修改我上面寫的內容,而且我現在沒有時間。斯科特在下面的評論將常識融入了這個答案。

引用自:https://unix.stackexchange.com/questions/79371