xiuxuan 发表于 2018-8-22 10:27:24

shell之字符串的处理

  shell脚本中对字符串的处理
  1、${#变量名}
  作用:返回字符串的长度
  # foo="this is a test"
  # echo ${#foo}         //返回字符串foo的长度
  14
  2、${变量名:offset:length}
  作用:截取字符串,length指定截取的长度,也可以不写;字符串的第一个字符的索引值为0
  # foo="abcdefg"
  # echo ${foo:3:2}   //从下标为3的字符开始截取,共截取2个
  de
  # echo ${foo:3}       //从下标为3的字符开始截取到最后的字符
  defg
  3、${变量名#pattern}    ${变量名##parttern}
  pattern:模式,通配符表达式
  作用:清除字符串中符合pattern的字符
  # foo="file.txt.zip"
  # echo ${foo#*.}          //一个#号代表按照最短匹配清除
  txt.zip
  # echo ${foo##*.}         //2个#号代表按照最长匹配清除
  zip
  4、${变量名%pattern}    ${变量名%%parttern}
  pattern:模式,通配符表达式
  作用:清除字符串中符合pattern的字符,从字符串最后匹配
  # echo $foo
  file.txt.zip
  # echo ${foo%.*}            //1个%代表按照最短匹配
  file.txt
  # echo ${foo%%.*}         //2个%%代表按照最长匹配
  file
  5、字符串替换操作
  ${变量名称/old/new}
  # foo="mp3.txt.txt.mp3.avi"
  #
  # echo ${foo/txt/TXT}
  mp3.TXT.txt.mp3.avi
  #
  # echo ${foo//txt/TXT}
  mp3.TXT.TXT.mp3.avi
  # foo="txt.mp3.txt"
  #
  # echo ${foo/#txt/TXT}
  TXT.mp3.txt
  # echo ${foo/%txt/TXT}
  txt.mp3.TXT
  6、实现大小写字母的转换
  # foo="ABde"
  # echo ${foo,,}      //将字符串foo全部转换成小写
  abde
  # echo ${foo,}       //将字符串foo的第1个字符转换成小写
  aBde
  # echo ${foo^}      //将字符串foo的第1个字符转换成大写
  ABde
  # echo ${foo^^}   //将字符串foo全部转换为大写
  ABDE

页: [1]
查看完整版本: shell之字符串的处理