字符串处理

234 阅读1分钟

字串截取

子串的截取方法

  • 使用 、${}表达式

格式:${var:起始位置:长度} 起始位置默认为0,可省略

子串截取实列

[]
[root~]# NM="hello world"
[root~]# echo ${NM:0:6}
hello

子串替换

子串替换的方法

  • 只替换第1个匹配结果 格式: ${var/old/new}
  • 替换全部匹配结果 格式: ${var//old/new/}

子串替换实例

[root~]# NM="Tarena IT Group."
[root~]# echo ${NM/a/##}
T##rena IT Group
[root~]# echo ${NM//a/##}
T##ren##IT Group.

按条件掐头去尾

字符串掐头

  • 从左到右,最短匹配删除

    格式: ${变量名#*关键词}

  • 从左向右,最长匹配删除

    格式:${变量名##*关键词}

字符串去尾

  • 从右向左,最短匹配删除 格式:${变量名%关键词*}
  • 从右向左,最长匹配删除 格式:${变量名%%关键词*}

实例

[root~]# MDIR="/var/spoolmail/root"
[root~]# echo ${MDIR#*/}
var/spool/mail/root   //删除到最近匹配

[root~]# echo ${MDIR##*/}  //删除到最远匹配
root
[root~]# MDIR='/var/spool/mail/root'
[root~]# echo ${MDIR%O*}
/var/spool/mail/ro

[root~]# echo ${MDDIR%%O*}
/var/sp

变量初始值处理

初值的检测及设置

取值

  • 若变量var已存在且非Null,则返回$var的值
[root~]# NM="hello world"
[root~]# echo ${NM:-shell}
hello world

[root~]# unset NM
[root~]# echo ${NM:-shell}
shell