Shell實(shí)現(xiàn)字符串處理的方法詳解
大小寫轉(zhuǎn)化
# 把變量中的第一個(gè)字符換成大寫
${test^}
# 把變量中的所有小寫字母,全部替換為大寫
${test^^}
# 把變量中的第一個(gè)字符換成小寫
${test,}
# 把變量中的所有大寫字母,全部替換為小寫
${test,,}
示例
#!/bin/bash
# script file name is test.sh
test="abcDEF"
echo "test^=${test^}"
echo "test^^=${test^^}"
echo "test,=${test,}"
echo "test,,=${test,,}"

獲取字符串長度
${#string}
替換
整體替換
# 若變量var為空,則用string來替換此處的值,最常用。
${var:-string}
# 若變量var為空,則用string來替換此處的值,把string賦給變量var。
${var:=string}
# 若變量var不為空,則用string來替換此處的值。
${var:+string}
# 若變量var不為空,則用string來替換此處的值;
# 若變量var為空,則把string輸出到標(biāo)準(zhǔn)錯(cuò)誤中,并從腳本中退出。
# 常用利用此特性來檢查是否設(shè)置了變量的值。
${var:?string}
部分替換
# 只替換第1個(gè)子串
${var/old/new}
# 替換全部子串
${var//old/new}
截取
# 從string字符串的左邊第start個(gè)字符開始(不包含第start個(gè)字符),向右截取到最后,start從0開始;
${string:start}
# 從string字符串的左邊第start個(gè)字符開始(不包含第start個(gè)字符),向右截取length個(gè)字符;
${string:start:length}
# 從string字符串的右邊第start個(gè)字符開始(包含第start個(gè)字符),向右截取到最后,start從1開始;
${string:0-start}
# 從string字符串的右邊第start個(gè)字符開始(包含第start個(gè)字符),向右截取length個(gè)字符,start從1開始;
${string:0-start:length}
# 從string字符串左邊第一次出現(xiàn)*chars的位置開始,截取*chars右邊的所有字符,不包含chars;
${string#*chars}
# 從string字符串左邊最后一次出現(xiàn)*chars的位置開始,截取*chars右邊的所有字符,不包含chars;
${string##*chars}
# 從string字符串右邊第一次出現(xiàn)chars*的位置開始,截取chars*左邊的所有字符,不包含chars;
${string%chars*}
# 從string字符串右邊最后一次出現(xiàn)chars*的位置開始,截取chars*左邊的所有字符,不包含chars;
${string%%*chars*}
示例
#!/bin/bash
# script file name is test.sh
url="https://blog.csdn.net/monarch91"
echo "url=${url}"
echo "url:8=${url:8}"
echo "url:8:4=${url:8:4}"
echo "url:0-8=${url:0-8}"
echo "url:0-8:4=${url:0-8:4}"
echo "url#*c=${url#*c}"
echo "url##*c=${url##*c}"
echo "url%c*=${url%c*}"
echo "url%%c*=${url%%c*}"

補(bǔ)充
當(dāng)然,除了以上操作,Shell還有許多字符串操作,下面小編為大家整理了一些,需要的可以參考一下
字符串的拼接
str1=www
str2=bilibili
string1=$str1$str2 #中間不加別的,直接放一起
string2="$str1 $str2" #雙引號括住,中間可加任意字串
string3=$str1"..."$str2 #整體不加引號,若中間要出現(xiàn)別的字串需前后緊挨,且字串雙引號括住
string4="${str1}.${str2}.com" #也可以使用${}方式引用變量
echo $string1
echo $string2
echo $string3
echo $string4運(yùn)行結(jié)果:
wwwbilibili
www bilibili
www...bilibili
www.bilibili.com
讀取字符串
$ echo ${abc-'ok'}
ok
$ echo $abc
$ echo ${abc='ok'}
ok
$ echo $abc
ok
$ var1=11;var2=12;var3=
$ echo ${!v@}
var1 var2 var
$ echo ${!v*}
var1 var2 var3
#${!varprefix*}與${!varprefix@}相似,可以通過變量名前綴字符,搜索已經(jīng)定義的變量,無論是否為空值。
字符串比較
[[ "a.txt" == a* ]] #邏輯真(pattern matching) [[ "a.txt" =~ .*\.txt ]] #邏輯真(regex matching) [[ "abc" == "abc" ]] #邏輯真(string comparision) [[ "11" < "2" ]] #邏輯真(string comparision),按 ascii 值比較
到此這篇關(guān)于Shell實(shí)現(xiàn)字符串處理的方法詳解的文章就介紹到這了,更多相關(guān)Shell字符串處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux awk時(shí)間計(jì)算腳本及awk命令詳解
這篇文章主要介紹了linux awk時(shí)間計(jì)算腳本及awk命令詳解的相關(guān)資料,需要的朋友可以參考下2015-11-11
每天學(xué)一個(gè) Linux 命令之more命令
more命令,功能類似 cat ,more會(huì)以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會(huì)往回(back)一頁顯示,而且還有搜尋字串的功能2016-12-12
Linux中執(zhí)行shell腳本的4種方法總結(jié)
這篇文章主要介紹了Linux中執(zhí)行shell腳本的4種方法總結(jié),即在Linux中運(yùn)行shell腳本的4種方法,需要的朋友可以參考下2014-08-08

