字符串长度
获取字符串长度:
1 | echo ${#varname} |
子字符串
截取子字符串:
1 | {varname:offset:length} |
- offset: 其实索引,从 0 开始,如果为负值则表示从结尾开始,注意负值必须在负号前增加空格,否则和
${name:-value}
冲突,负值正确写法:${name: -6}
- length: 截取的长度,不指定则截取到末尾,length 可以为负,如果为负,则表示排除末尾的字符,如 -2 表示排除结尾 2 个字符
例如:
1 | name=zhuyilong |
该语法不能直接操作字符串,错误示例:${"zhuyilong":3:6}
搜索和替换
Bash 提供的字符串搜索和替换方法:
字符串头部模式匹配
从头部开始匹配,返回匹配之外的部分,分为贪婪匹配和非贪婪匹配两种:
1 | 非贪婪匹配,匹配最短部分,返回剩余部分 |
其中的 word 可取 *
, ?
, []
等通配符。
字符串尾部模式匹配
从尾部开始匹配,返回剩余的部分:
1 | 非贪婪匹配,返回剩余部分 |
任意位置匹配替换
1 | 贪婪匹配替换,仅替换第一个匹配 |
改变大小写
语法:
1 | 转为大写 |