Sed
從日期輸出中刪除前導零
我創建了 date 命令的別名,以以下格式顯示日期:
2013.06.14.12.10.02
使用這個命令:
alias date = date +"%Y.%m.%d.%H.%M.%S"
一切都很好,除了我想從輸出中刪除前導零。
沒有辦法通過改變格式來實現它。我認為只能通過將輸出傳遞到其他命令(如
sed
和)來完成awk
。我正在執行的作業系統是 Ubuntu 12.04.2 LTS。
根據 GNU
date
手冊頁: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 表達式中的選項有非常有效的觀點。我寧願在沒有測試的情況下修改我上面寫的內容,而且我現在沒有時間。斯科特在下面的評論將常識融入了這個答案。