2016-03-02 83 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