如何以双十进制打印输出。
下面的命令将以GMT格式打印小时,但我希望输出为06,而对于两位数小时,它应该是10,11,12。
date -u --date="today" +"%I" | awk -F' ' '{print $1-1}'
6
答案 0 :(得分:1)
您可以在printf "%02d"
中使用awk
来实现它,
$ date -u --date="today" +"%I" | awk -F' ' '{printf "%02d\n",$1-1}'
06
答案 1 :(得分:1)
awk
在这里是多余的。您可以使用date
的相对时间格式:
date -u --date="-1 hour" +"%I"
06
答案 2 :(得分:1)
也许你想要:
date -u --date="- 1 hour" +"%I"`
如果时间调整是日期字符串的一部分,则不会使用该格式。
或者,如果您真正想要的是一种在bash或awk中填充数字的方法,那么您有多种选择:
date -u --date="- 1 hour" +"%I" | awk '{printf "%02d\n",$1-1}'
或者单独使用bash:
read hour < <( date -u --date="- 1 hour" +"%I" )
printf '%02d\n' "$hour"
明白了吗?输出格式在打印输出时发生,printf
以任何语言格式输出。