我存储在变量中的内容,例如xyz:
20170629
我想打印的内容:
2017年06月29
日我该怎么做:
year=$(echo $xyz | cut -c1-4) month=$(echo $xyz | cut -c5-6) day=$(echo $xyz | cut -c7-8) echo $year $month $day
我需要知道一种更懒惰的方式来完成此操作。谢谢。
内置 bash 子字符串操作:
echo ${xyz:0:4} ${xyz:4:2} ${xyz:6:2}
这将从位置 0 回显长度为 4(年份(的子字符串,然后从位置 4 回显长度为 2(月(,最后从位置 6 回显长度为 2(天(。
或者使用date
命令:
date -d'20160629' "+%Y %m %d"
我们在其中输入输入日期并为其提供新格式。检查带有man date
的date
手册页以查看所有格式选项。
在 POSIX shell 中,您可以使用:
$ echo $(expr substr "$var" 1 4)
$(expr substr "$var" 5 2)
$(expr substr "$var" 7 2)
如果您在 bash 中工作,字符串索引是最佳的,但对于通常意味着 POSIX shell 的shell
,字符串索引不可用。