如何在 Linux/Unix Shell 中对字符串进行分段?



我存储在变量中的内容,例如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 datedate手册页以查看所有格式选项。

在 POSIX shell 中,您可以使用:

$ echo $(expr substr "$var" 1 4) 
$(expr substr "$var" 5 2) 
$(expr substr "$var" 7 2)

如果您在 bash 中工作,字符串索引是最佳的,但对于通常意味着 POSIX shell 的shell字符串索引不可用。

相关内容

  • 没有找到相关文章

最新更新