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;'