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

从YYYY-MM-DD格式获取年份、日期和月份的shell脚本,shell,date,format,Shell,Date,Format,我正在运行一个shell脚本,它接受“YYYY-MM-DD”格式的日期。从该日期输入中,如何分别获取年、月和日 感谢您提前回复。试试这个: dt="2011-2-3" arr=( $( date --date=$dt "+%Y %m %d") ) echo "Year > $arr" echo "Month > ${arr[1]}" echo "Month > ${arr[2]}" 除了将字符串作为文本处理(使用grep/sed/awk/cut/…),您还可以使用date

我正在运行一个shell脚本,它接受“YYYY-MM-DD”格式的日期。从该日期输入中,如何分别获取年、月和日

感谢您提前回复。

试试这个:

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

除了将字符串作为文本处理(使用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
read YEAR MONTH DAY < <(date -d '2013-09-06' '+%Y %m %d')
printf "%s\n" "$YEAR" "$MONTH" "$DAY"

您可以通过一个命令将它们存储在变量上:

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

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

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

read YEAR MONTH DAY<我不想使用
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}'`