2016-03-02 70 views
0

您好我需要使用awk格式化日期命令輸出,並在從1到9開始的日期之前添加零。AWK添加if語句以將0添加到數字範圍0到9(需要使用AWK)

today=`date | awk {'print $1 " " $2 " " $3'}` 

所以在上面的輸出是

Wed Mar 2 

我需要添加0到2至9

Wed Mar 02 

何去的月1日我可以添加此命令使用awk命令

for i in 0{1..9}; do echo $i; done 

所以,我需要0 /零添加到$ 3當它是1 9

之間或

我試圖做這樣的事,但不工作我得到錯誤

a3=`date|awk '{ 
if ($3 <=9) 
     print $1" "$2" " "0"$3; 
else 
     print $1" "$2" " $3; 
}'` 

echo $a3 

能否請您協助?

問候

+1

查找'printf'在'awk'手冊頁 – mpez0

+0

請編輯您的代碼,告訴我們你想具體行爲通過不引用你的shell變量來獲得,所以我們可以幫助你以更強大的方式獲得相同的效果。你的問題看起來很像XY問題(http://xyproblem.info/)。 –

回答

3

如果我是你,我只希望直接指定的格式:

$ date '+%a %b %d' 
Wed Mar 02 

date需要由+之前作爲其最後一個參數的格式字符串。

+0

我遲到了1分鐘:D – midihenry

+0

thx湯姆 - 我知道這個命令我需要做的是awk語句 – theuniverseisflat

+0

我很困惑這個要求。你可以編輯你的問題,使其更清楚你想要做什麼? –

0

如果必須在awk你可以使用printf進行格式化打印

$ echo 1 2 10 20 | awk -v RS=" " '{printf "%s\t-> %02d\n",$1,$1}' 

1  -> 01 
2  -> 02 
10  -> 10 
20  -> 20