shell腳本的字符串截取


假設有變量var=http://www.itecs.cn/index.html

1.#字號截取(從左邊開始截,刪除左邊字符,保留右邊字符)

# echo ${var#*//}

www.itecs.cn/index.html

${} -> ${var} -> ${var#//} -> ${var#*//} 

#//表示從左邊開始截,截取到第一次出現//處,(#*//中的*表示)然后把左邊的字符扔掉,得到//右邊的字符。

 

2.##(雙#號)截取

# echo ${var##*/}

index.html

##/表示從左邊開始截,截取到最后一次出現/處,(##*/中的*表示)然后把左邊的字符扔掉,得到/右邊的字符。

 

3.%(百分號)截取(從右邊開始截,刪除右邊字符,保留左邊字符) 

# echo ${var%:*}

http

 %:表示從右邊開始截,截取到第一次出現:(冒號)處,(%:*中的*表示)然后把右邊的字符扔掉,得到冒號左邊的字符。

 

4.%%(雙%號)截取

 # echo ${var%%/*}

http:

 %%/表示從右邊開始截,截取到最后一次出現/處,(%%/*中的*表示)然后把右邊的字符扔掉,得到/左邊的字符。

 

5.截取指定位置的字符

# ls -l /etc/dhcp/dhcpd.conf

-rw-r--r--. 1 root root 352 Sep 21 23:12 /etc/dhcp/dhcpd.conf

# str=`ls -l /etc/dhcp/dhcpd.conf`

# firstchar=${str:0:1}

# echo $firstchar

 

練習:

# ABC=user10

(1)得到變量值后面的數字

# echo ${ABC##*[a-z]}

# echo ${ABC##*[a-z,A-Z]}

# echo ${ABC##*[[:alpha:]]}

(2)得到變量值前面的字母(即去掉數字后的部分)

# echo ${ABC%%[0-9]*}

# echo ${ABC%%[[:digit:]]*}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM