shell腳本字符串處理的使用(分割、截取和拼接)
1、分割
按字符分割:${parameter//pattern/string} 。用string來替換parameter變量中所有匹配的pattern
示例:
#!/bin/bash string="hello,shell,split,test" array=(${string//,/ }) for var in ${array[@]} do echo $var done
輸出:
hello
shell
split
test
2、截取
使用#號可以截取指定字符(或者子字符串)右邊的所有字符,具體格式如下:${string#*chars}
注意,以上寫法遇到第一個匹配的字符(子字符串)就結(jié)束了。例如遇到第一個/時結(jié)束:
url="http://www.baidu.com/test" echo ${url#*/}
輸出:
/www.baidu.com/test
如果希望直到最后一個指定字符(子字符串)再匹配結(jié)束,那么可以使用##,格式為:${string##*chars}
url="http://www.baidu.com/test" echo ${url##*/}
輸出:
test
其他截取格式說明:
格式 | 說明 |
---|---|
${string: start :length} | 從 string 字符串的左邊第 start 個字符開始,向右截取 length 個字符。 |
${string: start} | 從 string 字符串的左邊第 start 個字符開始截取,直到最后。 |
${string: 0-start :length} | 從 string 字符串的右邊第 start 個字符開始,向右截取 length 個字符。 |
${string: 0-start} | 從 string 字符串的右邊第 start 個字符開始截取,直到最后。 |
${string#*chars} | 從 string 字符串第一次出現(xiàn) *chars 的位置開始,截取 *chars 右邊的所有字符。 |
${string##*chars} | 從 string 字符串最后一次出現(xiàn) *chars 的位置開始,截取 *chars 右邊的所有字符。 |
${string%*chars} | 從 string 字符串第一次出現(xiàn) *chars 的位置開始,截取 *chars 左邊的所有字符。 |
${string%%*chars} | 從 string 字符串最后一次出現(xiàn) *chars 的位置開始,截取 *chars 左邊的所有字符。 |
3、拼接
直接放一起就可以:
# 12 str01="1""2"
變量也可以放一起拼接:
s1="1" s2="2" # 12 s3=${s1}${s2} # 12 s4=${s1}"2"
命令也是一樣的:
s1="1" s5=`date`${s1}
4、示例
testString1="http://127.0.0.1/test/111:222,http://www.baidu.com/ttt" arr=(${testString1//,/ }) testString2=${arr[0]##*/} testString3=${arr[1]}"/"${testString2} echo ${testString3}
輸出:
http://www.baidu.com/ttt/111:222
到此這篇關(guān)于shell腳本字符串處理的使用(分割、截取和拼接)的文章就介紹到這了,更多相關(guān)shell腳本字符串處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過Spring Shell 開發(fā) Java 命令行應(yīng)用
這篇文章主要介紹了通過Spring Shell 開發(fā) Java 命令行應(yīng)用的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11Shell腳本創(chuàng)建指定大小文件的測試數(shù)據(jù)
這篇文章主要介紹了Shell腳本創(chuàng)建指定大小文件的測試數(shù)據(jù),本文同時給出使用DD命令和Shell腳本解決這個需求,給出的腳本功能更加強大,需要的朋友可以參考下2015-03-03