shell之字符串的處理

shell腳本中對字符串的處理 shell


一、${#變量名}ide


做用:返回字符串的長度this

# foo="this is a test"spa

# echo ${#foo}           //返回字符串foo的長度          索引

14ip



二、${變量名:offset:length}字符串


做用:截取字符串,length指定截取的長度,也能夠不寫;字符串的第一個字符的索引值爲0it

# foo="abcdefg"class

# echo ${foo:3:2}     //從下標爲3的字符開始截取,共截取2個     test

de

# echo ${foo:3}       //從下標爲3的字符開始截取到最後的字符     

defg




三、${變量名#pattern}    ${變量名##parttern}


pattern:模式,通配符表達式

做用:清除字符串中符合pattern的字符


# foo="file.txt.zip"

# echo ${foo#*.}          //一個#號表明按照最短匹配清除

txt.zip

# echo ${foo##*.}         //2個#號表明按照最長匹配清除

zip


四、${變量名%pattern}    ${變量名%%parttern}

pattern:模式,通配符表達式

做用:清除字符串中符合pattern的字符,從字符串最後匹配

# echo $foo

file.txt.zip

# echo ${foo%.*}              //1個%表明按照最短匹配

file.txt

# echo ${foo%%.*}           //2個%%表明按照最長匹配

file



五、字符串替換操做


${變量名稱/old/new}


[root@localhost ~]# foo="mp3.txt.txt.mp3.avi"

[root@localhost ~]# 

[root@localhost ~]# echo ${foo/txt/TXT}

mp3.TXT.txt.mp3.avi

[root@localhost ~]# 

[root@localhost ~]# echo ${foo//txt/TXT}

mp3.TXT.TXT.mp3.avi



[root@localhost ~]# foo="txt.mp3.txt"

[root@localhost ~]# 

[root@localhost ~]# echo ${foo/#txt/TXT}

TXT.mp3.txt

[root@localhost ~]# echo ${foo/%txt/TXT}

txt.mp3.TXT



六、實現大小寫字母的轉換


# foo="ABde"

# echo ${foo,,}      //將字符串foo所有轉換成小寫        

abde

# echo ${foo,}       //將字符串foo的第1個字符轉換成小寫

aBde

# echo ${foo^}      //將字符串foo的第1個字符轉換成大寫 

ABde

# echo ${foo^^}     //將字符串foo所有轉換爲大寫         

ABDE

相關文章
相關標籤/搜索