码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本基础二

时间:2018-02-06 14:58:59      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:情况   连续   root   位置   脚本基础   表达   通配符   字符   影响   

字符串的处理
1.字符串的截取
方法一,使用 ${}表达式
格式:${var:起始位置:长度}

Phone="13788768897"

    # echo ${#Phone}
    11                                

使用${}方式截取字符串时,起始位置是从0开始的(和数组下标编号类似)

echo ${Phone:1:6}

 378876

方法二,使用 expr substr
格式:expr substr "$var" 起始位置 长度
使用expr substr截取字符串时,起始编号从1开始,这个要注意与${}相区分。

expr substr "$Phone" 1 6

 137887

方式三,使用cut分割工具

格式:echo $var | cut -b 起始位置-结束位置

选项 -b 表示按字节截取字符,其中起始位置、结束位置都可以省略。当省略起始位置时,视为从第1个字符开始(编号也是从1开始,与expr类似),当省略结束位置时,视为截取到最后。

echo $Phone | cut -b 1-6

 137887
      # echo $phone | cut -b 2,4,6,8  不连续截取
       7679

2.字符串的替换
只替换第1个子串
格式:${var/old/new}

SCHOOL="Tarena IT Group"

     # echo  ${SCHOOL/r/RRRR}
      TaRRRRena IT Group
                替换全部子串

格式:${var//old/new}

echo ${SCHOOL//r/RRRR}

TaRRRRena IT GRRRRoup

3.字符串的匹配删除
1)从左向右,最短匹配删除

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

删除从左侧第1个字符到最近的关键词“oo”的部分,* 作通配符理解:

echo $MAIL //确认变量 MAIL的值

/var/spool/mail/root

echo ${MAIL#*/}

var/spool/mail/root

2)从左向右,最长匹配删除

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

删除从左侧第1个字符到最远的关键词“oo”的部分:

echo ${MAIL##*oo}

  t
       # echo ${MAIL##*/}
     root

3)从右向左,最短匹配删除

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

删除从右侧最后1个字符到往左最近的关键词“oo”的部分,* 做通配符理解

echo ${MAIL%oo*}

/var/spool/mail/r
     # echo ${MAIL%/*}
    /var/spool/mail

4)从右向左,最长匹配删除

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

删除从右侧最后1个字符到往左最远的关键词“oo”的部分:

echo ${MAIL%%oo*}

 var/sp

4.字符串初值的处理
只取值,${var:-word}
若变量var已存在且非Null,则返回 $var 的值;否则返回字串“word”,原变量var的值不受影响
变量值已存在的情况
[root@svr5 ~]# echo $SCHOOL //查看原变量值
Tarena IT Group.
[root@svr5 ~]# echo ${SCHOOL:-Tarena} //因SCHOOL已存在,输出变量SCHOOL的值
Tarena IT Group.
[root@svr5 ~]# echo $SCHOOL //原变量的值并不改变
Tarena IT Group.
变量值不存在的情况:

[root@svr5 ~]# unset SCHOOL //清除SCHOOL变量
[root@svr5 ~]# echo ${SCHOOL:-Tarena} //因SCHOOL已不存在,输出“Tarena”
Tarena
[root@svr5 ~]# echo $SCHOOL //变量SCHOOL仍然不存在

shell脚本基础二

标签:情况   连续   root   位置   脚本基础   表达   通配符   字符   影响   

原文地址:http://blog.51cto.com/13594742/2069402

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!