shell腳本字符串處理的使用(分割、截取和拼接)
1、分割
按字符分割:${parameter//pattern/string} 。用string來(lái)替換parameter變量中所有匹配的pattern
示例:
#!/bin/bash string="hello,shell,split,test" array=(${string//,/ }) for var in ${array[@]} do echo $var done
輸出:
hello
shell
split
test
2、截取
使用#號(hào)可以截取指定字符(或者子字符串)右邊的所有字符,具體格式如下:${string#*chars}
注意,以上寫法遇到第一個(gè)匹配的字符(子字符串)就結(jié)束了。例如遇到第一個(gè)/時(shí)結(jié)束:
url="http://www.baidu.com/test" echo ${url#*/}
輸出:
/www.baidu.com/test
如果希望直到最后一個(gè)指定字符(子字符串)再匹配結(jié)束,那么可以使用##,格式為:${string##*chars}
url="http://www.baidu.com/test" echo ${url##*/}
輸出:
test
其他截取格式說(shuō)明:
格式 | 說(shuō)明 |
---|---|
${string: start :length} | 從 string 字符串的左邊第 start 個(gè)字符開始,向右截取 length 個(gè)字符。 |
${string: start} | 從 string 字符串的左邊第 start 個(gè)字符開始截取,直到最后。 |
${string: 0-start :length} | 從 string 字符串的右邊第 start 個(gè)字符開始,向右截取 length 個(gè)字符。 |
${string: 0-start} | 從 string 字符串的右邊第 start 個(gè)字符開始截取,直到最后。 |
${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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過(guò)Spring Shell 開發(fā) Java 命令行應(yīng)用
這篇文章主要介紹了通過(guò)Spring Shell 開發(fā) Java 命令行應(yīng)用的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11Linux 按時(shí)間批量刪除文件命令(刪除N天前文件)
這篇文章主要介紹了Linux 按時(shí)間批量刪除文件的命令寫法(刪除N天前文件),需要的朋友可以參考下2017-05-05Shell腳本創(chuàng)建指定大小文件的測(cè)試數(shù)據(jù)
這篇文章主要介紹了Shell腳本創(chuàng)建指定大小文件的測(cè)試數(shù)據(jù),本文同時(shí)給出使用DD命令和Shell腳本解決這個(gè)需求,給出的腳本功能更加強(qiáng)大,需要的朋友可以參考下2015-03-03