2013年3月22日 星期五 晴
变量扩展:取字符串切片
一、定义变量
[root@desktop7 ~]# name=simth_jacob
[root@desktop7 ~]#
[root@desktop7 ~]# name2=(cheng long)
二、取值
1、数组取值(查看数组成员)
[root@desktop7 ~]# echo ${name2[1]}
long
[root@desktop7 ~]# echo ${name2[0]}
cheng
2、变量切片取值
(1)截取变量值第三个字符到最后
[root@desktop7 ~]# echo ${name:2}
mth_jacob
(2)截取变量值第六个字符到最后
[root@desktop7 ~]# echo ${name:5}
_jacob
(3)截取变量值从第三个到第五个字符
[root@desktop7 ~]# echo ${name:2:4}
mth_
三、变量扩展
查看变量
[root@desktop7 ~]# echo $path
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/x11r6/bin:/root/bin
1、删除第一个 ${variable#key}
[root@desktop7 ~]# echo ${path#*:}
/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/x11r6/bin:/root/bin
2、删除条件冒号(:)前所有 ${variable##key}
[root@desktop7 ~]# echo ${path##*:}
/root/bin
3、删除最后一个 ${variable%key}
[root@desktop7 ~]# echo ${path%:*}
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/x11r6/bin
4、删除条件冒号(:)后所有 ${variable%%key}
[root@desktop7 ~]# echo ${path%%:*}
/usr/kerberos/sbin
5、旧内容换为新内容,替换首个 ${variable/old/}
[root@desktop7 ~]# echo ${path/sbin/qq}
/usr/kerberos/qq:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/x11r6/bin:/root/bin
6、旧内容换为新内容,替换首个 ${variable//old/}
[root@desktop7 ~]# echo ${path//usr/qq}
/qq/kerberos/sbin:/qq/kerberos/bin:/qq/local/sbin:/qq/local/bin:/sbin:/bin:/qq/sbin:/qq/bin:/qq/x11r6/bin:/root/bin
7、小练习
[root@desktop7 ~]# echo 999|sed 's9\9\9\99669'
66
[root@desktop7 ~]# echo 999|sed 's9\9\9\99\9\9\9\9\9\99'
999999
[root@desktop7 ~]# echo 999|sed 's#999#999999#'
替换字符可随意,可用转义字符转义原含义,如数字、字母等
[root@desktop7 ~]# echo 999|sed 'sa999a999999a'
[root@desktop7 ~]# echo 999|sed 'ss999s999999s'
[root@desktop7 ~]# echo 999|sed 'ss99s88899s'
888999
[root@desktop7 ~]# echo 999|sed 'ss9s88899s'
8889999
[root@desktop7 ~]# echo 989|sed 'ss9s88899s' #默认替换首个
8889989
[root@desktop7 ~]# echo 999|sed 's;99;88899;'