Linux shell 字符串切割 内置方法
$myStr="node=slave-01:2.05:1.25:1.00" $time tmp=${myStr%%:*};echo ${tmp##*=} real 0m0.000s user 0m0.000s sys 0m0.000s slave-01
${string#*pattern} 从左边开始最小化匹配pattern ,并删除(从左边开始)第一个pattern及其左边字串
${string##*pattern} 从左边开始最大化匹配pattern,并删除(从左边开始)最后一个pattern及其左边字串
${string%pattern*} 从右边开始最小化匹配pattern,并删除(从右边开始)第一个pattern及其右边的字串(从后向前)
${string%%pattern**} 从右边开始最大化匹配pattern,并删除(从右边开始)最后个pattern及其右边的字串(从后向前)
#是去掉左边
%是去掉右边
单个最小匹配,两个最大匹配
$ echo ${myStr:0:5} node= $ echo ${myStr:5:5} slave
${string:start:length} (0开始计数)
包含第start元素,取到第(start+length-1)个元素
$echo ${myStr/:/_} node=slave-01_2.05:1.25:1.00 $ echo ${myStr//:/_} node=slave-01_2.05_1.25_1.00
${string/old/new} 将第一个old替换为new
${string//old/new} 将所有old替换为new
old含/时用\转义