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

标签 linux bash shell unix scripting

我在变量中存储的内容,例如 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 substring manipulation :

 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 联机帮助页以查看所有格式选项。

关于linux - 如何在 Linux/Unix Shell 中对字符串进行分段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45017381/

相关文章:

linux - 在 telnet session 中使用变量

我可以将 GCC 作为守护进程运行(或将其用作库)吗?

linux - 对于匿名用户来说,Drupal 菜单项和博客条目消失了

linux - For 循环的双重变量扩展

linux - 从命令输出循环和复制所有文件的脚本

bash - 如何使用 bash shell 在 if 语句中检查特定文件类型

c - 将视频文件的每一帧映射到指向原始帧的 .png

linux - 用于检查网络状态的 Bash 脚本 - linux

linux - 如何在 bash 中创建动态命令?

shell - 如何修改 awk 中 ifconfig 的输入