bash脚本截取字符串的两种方法

方法一:位置截取

#bin/bash
STR="1234567890asdfghjkl"
echo "first character ${STR:0:1}"
echo "The three characters ${STR:0:3}"
echo "第四个字符开始显示:${STR:3}"
echo "显示第4到6个字符:${STR:3:3}"
echo "显示最后1个字符:${STR:0-1}"
echo "显示最后3个字符:${STR:0-3}"
echo "从右边数第7个,取3个字符${STR:0-7:3}"

总结:
${STR:开始位置:截取几个字符}
开始位置0-开始是从右边数如 0-7 表示从右边数第7个

方法二,左右按照字符串截断,#从做到右 ,%从右到左。

${varible#string} 从左往右,删除最短的一个以string结尾的子串,即截取第一个string子串之后的字符串
${varible##string} 从左往右,删除最长的一个以string结尾的子串,即截取最后一个string子串之后的字符串
${varible%string
} 从右往左,删除最短的一个以string开头的子串,即截取最后一个string子串之前的字符串
${varible%%string
} 从右往左,删除最长的一个以string开头的子串,即截取第一个string子串之前的字符串

STR=abc123bcd456123abc777
echo ${STR#*123}    #bcd456123abc777
echo ${STR##*123}    #abc777
echo ${STR%123*}   #abc123bcd456
echo ${STR%%123*}   #abc
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐