如何使用“日期”命令显示一年中的周数?

lea*_*erX 11 command-line string system-information text-formatting

我希望 UNIXdate输出:

So this is week 35 of 2016.
Run Code Online (Sandbox Code Playgroud)

当然,这里 35 和 2016 是 date 命令的输出。我尝试了以下方法:

date +%U
Run Code Online (Sandbox Code Playgroud)

这打印出当前周数。但是我必须将它包装在我想要显示的特定文本中。我试过:

date "So this is week: %U"
date "It is currently: "+ "%U"
Run Code Online (Sandbox Code Playgroud)

两者都给了我一个错误。如何让date命令以我想要的特定格式向我显示周数?

mur*_*uru 13

整个格式字符串的前面是+

$ date +"So this is week: %U"
So this is week: 19
$ date +"So this is week: %U of %Y"
So this is week: 19 of 2016
Run Code Online (Sandbox Code Playgroud)


小智 8

日期命令实际上有 3 种一年中的周数:

  • %U 一年中的周数,星期日为一周的第一天 (00..53)
  • %W 一年中的周数,星期一为一周的第一天 (00..53)
  • %V ISO 周数,星期一为一周的第一天 (01..53)


小智 7

周有两种:

  • 星期一为第一天
  • 周日为第一天

因此,当您处于一周中的不同日期(CentOS7)时,情况并不完全相同:

[root@vm01.dev.cd:~]# date
Mon Aug 26 18:02:47 CST 2019

[root@vm01.dev.cd:~]# date +%U
34

[root@vm01.dev.cd:~]# date +%V
35
Run Code Online (Sandbox Code Playgroud)
date --help
  %U   week number of year, with Sunday as first day of week (00..53)  
  %V   ISO week number, with Monday as first day of week (01..53)
Run Code Online (Sandbox Code Playgroud)