当前:

重建

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