如果我在linux终端上键入“date”,它会显示
2017年4月5日星期三美国东部时间11:00:29
我的问题是有没有办法用以下两种形式来表示?只使用“date”命令或shell脚本?
4月17日-5日星期三
wed都是小写的
4月17日-5日为年-月-日表格
17-4-5周三
星期三都是大写的
17-4-5为年-月-日表格
最佳答案
您可以使用date命令和tr来完成您想要的任务。我创建了一个脚本,该脚本接受parm($1),并将其转换为您想要的格式(假设它是日期):
tmp()
{
d8out1="$(date -d $1 +%y-%B-%-d) $(date -d $1 +%a | tr [:upper:] [:lower:])"
echo $d8out1
d8out2=$(date -d $1 +"%y-%-m-%-d %^a")
echo $d8out2
}
日期格式使用以下选项:
%y -- Two digit year (use %Y (uppercase) for four digits)
%B -- Full month name (e.g., April)
%-m -- Month number -- the hyphen ("-") says do not pad the field (4 instead of 04)
%-d -- Day of month -- again, the hyphen suppresses padding
%a -- abbreviated weekday name (e.g. Wed) -- tr is then used to shift the case.
%^a -- abbreviated weekday name -- the caret ("^") says to upshift it
请注意,如果您不关心日名称的大小写,第一个版本可以在一个简单的语句中完成,与第二个版本相同(当然,只有在没有插入符号的情况下才能将日升迁)。
下面是几个运行示例:
> tmp 04/05/2017
17-April-5 wed
17-4-5 WED
> tmp 12/31/2017
17-December-31 sun
17-12-31 SUN
> tmp 11/30/1965
65-November-30 tue
65-11-30 TUE
希望这有帮助!
关于linux - 如何将下一个日期更改为2种特定形式? (Linux终端/ shell ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43236092/