shell字符串截取

字符串变量使用如下:

str="hello/world/hello/shell"

1.从第几个索引开始,截取到最后

索引从0开始

echo ${str:6}
结果:world/hello/shell

2.从第几个索引开始,截取指定长度字符

索引从0开始

echo ${str:6:5}
结果:world

3.从倒数第几个位置开始,截取到最后

位置从1开始数

echo ${str: 0-5}
结果:shell

4.从倒数第几个位置开始,截取指定长度字符

位置从1开始数

echo ${str: 0-5:3}
结果:she

5.从左开始匹配第一个指定子字符串,并截取右边字符串

使用#
其中*表示通配符,/表示需要匹配的子串

echo ${str#*/}
结果: world/hello/shell

6.从左开始匹配最后一个指定子字符串,并截取右边字符串

使用##
其中*表示通配符,/表示需要匹配的子串

echo ${str##*/}
结果: shell

7.从右开始匹配第一个指定子字符串,并截取左边字符串

echo ${str%/*}
结果: hello/world/hello

8.从右开始匹配最后一个指定子字符串,并截取左边字符串

echo ${str%%/*}
结果: hello

总结

格式说明
${string: start :length}从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。(start从0开始)
${string: start}从 string 字符串的左边第 start 个字符开始截取,直到最后。(start从0开始)
${string: 0-start :length}从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。(start从1开始)
${string: 0-start}从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars}从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars}从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%chars*}从 string 字符串右边匹配第一次出现 chars* 的位置开始,截取 chars* 左边的所有字符。
${string%%chars*}从 string 字符串右边匹配最后一次出现 chars* 的位置开始,截取 chars* 左边的所有字符。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值