Linux AWK adding if语句将0添加到数字范围0到9(需要使用AWK)

Linux AWK adding if语句将0添加到数字范围0到9(需要使用AWK),linux,bash,if-statement,awk,Linux,Bash,If Statement,Awk,您好,我需要使用awk格式化日期命令输出,并在从1到9开始的日期之前添加零 today=`date | awk {'print $1 " " $2 " " $3'}` 因此,在上面的例子中,输出是 Wed Mar 2 我需要将0添加到2,以获得月份1到9的天数 Wed Mar 02 我可以使用awk命令添加此命令吗 for i in 0{1..9}; do echo $i; done 所以当它在1或9之间时,我需要将0/0添加到3美元 我试着这样做,但有些东西不起作用,我得到了错

您好,我需要使用awk格式化日期命令输出,并在从1到9开始的日期之前添加零

today=`date | awk {'print $1 " " $2  " " $3'}`
因此,在上面的例子中,输出是

Wed Mar  2
我需要将0添加到2,以获得月份1到9的天数

Wed  Mar 02 
我可以使用awk命令添加此命令吗

for i in 0{1..9}; do echo $i; done
所以当它在1或9之间时,我需要将0/0添加到3美元

我试着这样做,但有些东西不起作用,我得到了错误

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

echo $a3
a3=`date | awk'{

如果($3如果我是你,我会直接指定一种格式:

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

将前面带有
+
的格式字符串作为其最终参数。

如果我是您,我会直接指定格式:

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

将前面带有
+
的格式字符串作为其最终参数。

如果必须在
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

如果必须在
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

awk
手册页中查找
printf
。请编辑您的代码,通过不引用shell变量告诉我们您试图获得的具体行为,以便我们可以帮助您以更稳健的方式获得相同的效果。您的问题看起来非常像XY问题()。在
awk
手册页中查找
printf
。请编辑您的代码,告诉我们您试图通过不引用shell变量获得的具体行为,以便我们可以帮助您以更稳健的方式获得相同的效果。您的问题看起来非常像XY问题()。我迟到了1分钟:Dthx Tom-我知道我需要执行的这个命令这是一个awk声明。我被这个要求弄糊涂了。你能编辑你的问题,让它更清楚你想做什么吗?公平地说,我更新了这个问题-我希望它更有意义。你已经展示了你是如何使用
awk
,而不是为什么此时需要
awk
全部。我迟到了1分钟:Dthx Tom-我知道我需要执行的命令这是一个awk声明。我被这个要求弄糊涂了。你能编辑你的问题,让它更清楚你想做什么吗?公平地说,我更新了这个问题-我希望它更有意义你已经展示了如何使用
awk
,而不是为什么
awk
是必要的完全