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、截取
使用#號(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
其他截取格式說明:
| 格式 | 說明 |
|---|---|
${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)文章
iredmail下安裝腳本分析(一)---get_all.sh 文件所在目錄為PKGS
這篇文章主要介紹了iredmail下安裝腳本分析(一)---get_all.sh 文件所在目錄為PKGS的相關(guān)資料,需要的朋友可以參考下2015-10-10
Linux Shell 生成隨機(jī)數(shù)和隨機(jī)字符串的方法示例
這篇文章主要介紹了Linux Shell 生成隨機(jī)數(shù)和隨機(jī)字符串的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
linux下編譯boost.python簡(jiǎn)單方法
下面小編就為大家?guī)硪黄猯inux下編譯boost.python簡(jiǎn)單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
一文分享22個(gè)Linux一線必備的高能Shell腳本,讓工作效能飆升
這篇文章主要為大家分享了22個(gè)Linux一線必備的高能Shell腳本,讓工作效能飆升,包括檢測(cè)文件一致性,定時(shí)清空文件內(nèi)容等內(nèi)容,感興趣的小伙伴可以了解下2026-03-03
linux?shell輸出換行簡(jiǎn)單實(shí)例
這篇文章主要給大家介紹了關(guān)于linux?shell輸出換行的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02
Shell中case...in分支語(yǔ)句的應(yīng)用
shell作為一種腳本編程語(yǔ)言,同樣包含循環(huán)、分支等其他程序控制結(jié)構(gòu),從而輕松完成更加復(fù)雜、強(qiáng)大的功能,本文主要介紹了Shell中case...in分支語(yǔ)句的應(yīng)用,感興趣的可以了解一下2023-08-08

