以双十进制shell脚本打印时间

时间:2017-07-25 07:16:46

标签: linux shell scripting

如何以双十进制打印输出。

下面的命令将以GMT格式打印小时,但我希望输出为06,而对于两位数小时,它应该是10,11,12。

date -u  --date="today" +"%I" | awk -F' ' '{print $1-1}'
6

3 个答案:

答案 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以任何语言格式输出。