oynix

于无声处听惊雷,于无色处见繁花

shell字符串操作

除了sed、awk等命令,shell也内置了一些字符串的操作,可以满足大部分需求,且速度会更快些,省去了调用命令的时间。

1. 字符串读值

1
2
3
4
5
6
7
8
9
10
11
- ${var}: 取值
- ${var-DEFAULT}: 如果var没有被声明,那么就以DEFAULT作为其值
- ${var:-DEFAULT}: 没被声明或为空,则以DEFAULT作为其值
- ${var=DEFAULT}: 如果var没有被声明,那么就以DEFAULT作为其值
- ${var:=DEFAULT}: 没被声明或为空,则以DEFAULT作为其值
- ${var+OTHER}: 如果var声明了,那么其值就是$OTHER,否则就为null字符串
- ${var:+OTHER}: 同上
- ${var?ERR_MSG}: 如果var没有被声明,则打印ERR_MSG
- ${var:?ERR_MSG}: 同上
- ${!varprefix*}: 匹配之前所有以prefix开头的变量名称
- ${!varprefix@}: 同上

2. 字符串操作

1
2
3
4
5
6
7
8
9
10
11
12
- ${#string}: 长度
- ${string:position}: 从position角标开始提取自字符串,角标从0开始
- ${string:position:length}: 同上,同时限定长度
- ${string:0-position:length}: 同上,从右边开始数,从1开始,最右字符是1
- ${string#*substring}: 截取,保留substring右边字符,不包含substring,遇到第一个substring就截取
- ${string##*substring}: 同上,遇到最后一个substring再截取,常用于URL,星号可通配任意个字符
- ${string%substring*}: 从右侧开始截取,保留substring左侧字符,不包含substring,遇到第一个就截取
- ${string%%substring*}: 同上,遇到最后一个再截取
- ${string/substring/replacement}: 用replacement替换第一个substring
- ${string//substring/replacement}: 同上,替换所有
- ${string/#substring/replacement}: 如果string的前缀匹配substring,则用replacement替换substring
- ${string/%substing/replacement}: 同上,换成后缀
------------- (完) -------------
  • 本文作者: oynix
  • 本文链接: https://oynix.com/2022/04/ff5ca87b121e/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道