如何在Linux/Unix Shell中分割字符串?

bvk*_*han 1 unix linux bash shell 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
Run Code Online (Sandbox Code Playgroud)

我需要知道一种更懒惰的方法来实现这一点.谢谢.

JNe*_*ill 6

内置bash 子串操作:

 echo ${xyz:0:4} ${xyz:4:2} ${xyz:6:2}
Run Code Online (Sandbox Code Playgroud)

将从长度为4(年)位置0回声出子字符串,然后从为长度2(月)第4位,最后从位置6为长度2(天).

或者使用date命令:

date -d'20160629' "+%Y %m %d"
Run Code Online (Sandbox Code Playgroud)

我们在哪里输入输入日期并给它一个新的格式.检查date联机帮助页man date以查看所有格式选项.