我有一个接受YYYY-MM-DD格式输入日期的脚本。
之后,我使用sed删除了连字符( - ),这给了我一个输出YYYY MM DD。
我的问题是,如何将这三个数字分配给三个不同的变量。
示例:
2013-11-23将成为2013年11月23日
echo "Please input date[yyyy-mm-dd]: "
read date
echo $date | sed 's/\-/ /g' #this will give me the output of yyyy mm dd
我想将这三个数字(yyyy,mm,dd)分别分配给变量;
X=yyyy
Y=mm
Z=dd
感谢。
答案 0 :(得分:7)
尝试这样的事情:
X="2013 11 12"
read X Y Z <<<$(echo $X)
答案 1 :(得分:1)
您可以执行以下操作:
> now=2013-11-23
> year=`echo $now | awk -F- '{ print $1 }'`
> month=`echo $now | awk -F- '{ print $2}'`
> day=`echo $now | awk -F- '{ print $3 }'`
> echo $year.$month.$day
2013.11.23
答案 2 :(得分:0)
cut command
此处生成的变量按空格分隔,因此cut命令会根据空格分隔符-d' '
将变量拆分为单独的字段,而-f1,2,3,...
将获取分割字段
result=`echo $date | sed 's/\-/ /g'`
X=`echo $result | cut -d' ' -f1`
Y=`echo $result | cut -d' ' -f2`
Z=`echo $result | cut -d' ' -f3`
echo $X $Y $Z
答案 3 :(得分:0)
如果您需要的只是三个变量,其中包含年份,月份和日期。你可以简单地通过
这样做#Get the year
X=`date '+%Y'`
echo $X
#Get the month
Y=`date '+%m'`
echo $Y
#Get the date
Z=`date '+%d'`
echo $Z