shell腳本中變量子串的常用操作

字符串操作

    ${#string}輸出字句的字符個數

    ${string:position:length}輸出$position開始的length長度的字符

    ${string:position}

[root@ilove scripts]# liuyifei="i like sanpan i like luo swimming"
[root@ilove scripts]# echo ${#liuyifei}
33
[root@ilove scripts]# echo ${liuyifei:2:4}
like
[root@ilove scripts]# echo ${liuyifei:2}  
like sanpan i like luo swimming
====以上實測

     ${string#substring}從string中從前往後檢索,只要匹配到字符就開始刪除最短匹配
     ${string##substring}從頭匹配,開始最長刪除
     ${string%substring}從結尾開始
     ${string%%substring}從結尾開始,類似以上##
======以上必須必須從一開始就匹配上
[root@ilove scripts]# echo ${liuyifei#like}
i like sanpan i like luo swimming
[root@ilove scripts]# echo ${liuyifei#*like}
sanpan i like luo swimming
[root@ilove scripts]# echo ${liuyifei##*like}
luo swimming
[root@ilove scripts]# echo ${liuyifei%*like} 
i like sanpan i like luo swimming
[root@ilove scripts]# echo ${liuyifei%like} 
i like sanpan i like luo swimming
[root@ilove scripts]# echo ${liuyifei%like*}
i like sanpan i
[root@ilove scripts]# echo ${liuyifei%%like*}
i

========================

    ${string/substring/replace}替換第一個遇到的匹配的字符

    ${string/#substring/replace}前綴匹配,必須全部匹配上,替換一長條

    ${string/%substring/replace}從後往前,替換最後一個遇到的匹配字符,必須全部匹配

[root@ilove scripts]# echo ${liuyifei/like/love}     

i love sanpan i like luo swimming

[root@ilove scripts]# echo ${liuyifei/#*like/love}   

love luo swimming

[root@ilove scripts]# echo ${liuyifei/%like*/love}   

i love


個人總結:在shell變量操作中 出現# % 就必須一直予以匹配才能進行相關操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章