bash|zsh字符串操作
最近修改: 2025-10-06 16:18
字符串截取
- 固定位置: ${val:idx:len}
- eg: var='12ab34'; echo ${var:0:3}; # 12a
- eg: var='12ab34'; echo ${var:3:3}; # b34
- eg: var='12ab34'; echo ${var:2}; # ab34
- eg: var='12ab34'; echo ${var: :-2}; # 必需空格 12ab
- eg: var='12ab34'; echo ${var: -2}; # 必需空格 34
- 取左到右首个之后: ${var#*str}
- eg: var='12ab34ab78'; echo ${var#*ab}; # 34ab78
- 取左往右末个之后: ${var##*str}
- eg: var='12ab34ab78'; echo ${var##*ab}; # 78
- 取右往左首个之前: ${var%str*}
- eg: var='12ab34ab78'; echo ${var%ab*}; # 12ab34
- 取右往左末个之前: ${var%%str*}
- eg: var='12ab34ab78'; echo ${var%%ab*}; # 12
字符串长度
- 取得长度: ${#var}
- eg: var='12a'; echo ${#var}; # 3
大小写转换(bash>=4.0)
- 首字母大写: ${var^}
- eg: var='ab'; echo ${var^}; # Ab
- 全字母大写: ${var^^}
- eg: var='ab'; echo ${var^^}; # AB
- 首字母小写: ${var,}
- eg: var='AB'; echo ${var,}; # aB
- 全字母小写: ${var,,}
- eg: var='AB'; echo ${var,,}; # ab