从YYYY-MM-DD格式中获取年份、日期和月份的shell脚本

4
我正在运行一个接受"YYYY-MM-DD"格式日期的shell脚本。从这个日期输入中,我怎么能分别得到年、月和日呢?
提前感谢您的回复。
4个回答

10

除了使用grep、sed、awk、cut等工具处理字符串外,你也可以使用date命令来完成:

kent$  date -d '2013-09-06' +%Y
2013

kent$  date -d '2013-09-06' +%m
09

kent$  date -d '2013-09-06' +%d
06

2

您可以使用一个命令将它们存储在变量中:

read YEAR MONTH DAY < <(date -d '2013-09-06' '+%Y %m %d')
printf "%s\n" "$YEAR" "$MONTH" "$DAY"

1

我不想使用date命令,所以我编写了以下代码。它使用awk,我觉得这更适合这个任务。我假设您希望将结果存储在变量中。

inputDate=2017-07-06

year=`echo $inputDate | awk -F\- '{print $1}'`
month=`echo $inputDate | awk -F\- '{print $2}'`
day=`echo $inputDate | awk -F\- '{print $3}'`

0

试试这个:

dt="2011-2-3"
arr=( $( date --date=$dt "+%Y  %m  %d") )
echo "Year > $arr"
echo "Month > ${arr[1]}"
echo "Month > ${arr[2]}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接