Text-Processing
如何在awk中獲取當月最後一天的值
根據最後一天的連結可以看到使用這個
date
命令:$ date -d "-$(date +%d) days -1 month" Wed May 31 21:20:31 CEST 2017
我的問題是,我怎樣才能只 得到一天並將其分配給一個變數,我稍後會使用它,比如
awk '{day=system("date -d \"-$(date +%d) days -1 month\")"; print day)}'
因此,例如列印日將僅輸出31。我知道需要格式化日期格式,但我不明白如何只列印最後一天。
或者,如果有另一種更簡單的方法
awk
也可以。編輯 一些非常骯髒的解決方法..
$ awk '{a=system("date -d \"-$(date +%d) days -1 month\"| cut -f 3 -d \" \""); }END{print a}' 31
有人有更簡單/更清潔的想法嗎?
當月的最後一天應該是:
$ date -d "$(date +%Y-%m-01) +1 month -1 day" Mon Jul 31 00:00:00 CEST 2017
我最短的:
awk '{a=system("date -d \"$(date +%Y-%m-01) +1 month -1 day\" +%d")}END{print a}'
只需使用格式字元串進行外部呼叫
date
:$ date -d "-$(date +%d) days +1 month" +%d 31