shell 字符串截取

截取分隔符右边的字符串:

  1. ${var#*/} 截取左边算起第一个“/”右边的所有字符
  2. ${var##*/} 截取左边算起最后一个“/”右边的所有字符

截取分隔符左边的字符串:

  1. ${var%/*} 截取右边算起第一个“/”左边的所有字符
  2. ${var%%/*} 截取右边算起最后一个“/”左边的所有字符

按字符位置截取字符串:index 从0开始,负数表示从右边算起的位置

  1. ${var:index:number} 位置index开始number个字符
  2. ${var:index} 位置index开始到右边最后所有字符
# t
est='a/b/c/d'
# echo ${test#*/}
b/c/d
# echo ${test##*/}
d
# echo ${test%/*}
a/b/c
# echo ${test%%/*}
a

使用pattern:
从右边开始匹配:
${var%pattern},
${var%%pattern}
从左边开始匹配
${var#pattern},
${var##pattern}
表示最短匹配,匹配到就停止,非贪婪
${var%pattern},
${var#pattern}
是最长匹配
${var%%pattern},
${var##pattern}

只有在pattern中使用了通配符才能有最长最短的匹配,否则没有最 长最短匹配之分
结构中的pattern支持通配符
*表示零个或多个任意字符
?表示零个或一个任意字符
[…]表示匹配中括号里面的字符
[!..]表示不匹配中括号里面的字符

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值