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

獲取字符串長(zhǎng)度
${#string}
替換
整體替換
# 若變量var為空,則用string來(lái)替換此處的值,最常用。
${var:-string}
# 若變量var為空,則用string來(lái)替換此處的值,把string賦給變量var。
${var:=string}
# 若變量var不為空,則用string來(lái)替換此處的值。
${var:+string}
# 若變量var不為空,則用string來(lái)替換此處的值;
# 若變量var為空,則把string輸出到標(biāo)準(zhǔn)錯(cuò)誤中,并從腳本中退出。
# 常用利用此特性來(lái)檢查是否設(shè)置了變量的值。
${var:?string}
部分替換
# 只替換第1個(gè)子串
${var/old/new}
# 替換全部子串
${var//old/new}
截取
# 從string字符串的左邊第start個(gè)字符開(kāi)始(不包含第start個(gè)字符),向右截取到最后,start從0開(kāi)始;
${string:start}
# 從string字符串的左邊第start個(gè)字符開(kāi)始(不包含第start個(gè)字符),向右截取length個(gè)字符;
${string:start:length}
# 從string字符串的右邊第start個(gè)字符開(kāi)始(包含第start個(gè)字符),向右截取到最后,start從1開(kāi)始;
${string:0-start}
# 從string字符串的右邊第start個(gè)字符開(kāi)始(包含第start個(gè)字符),向右截取length個(gè)字符,start從1開(kāi)始;
${string:0-start:length}
# 從string字符串左邊第一次出現(xiàn)*chars的位置開(kāi)始,截取*chars右邊的所有字符,不包含chars;
${string#*chars}
# 從string字符串左邊最后一次出現(xiàn)*chars的位置開(kāi)始,截取*chars右邊的所有字符,不包含chars;
${string##*chars}
# 從string字符串右邊第一次出現(xiàn)chars*的位置開(kāi)始,截取chars*左邊的所有字符,不包含chars;
${string%chars*}
# 從string字符串右邊最后一次出現(xiàn)chars*的位置開(kāi)始,截取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" #雙引號(hào)括住,中間可加任意字串
string3=$str1"..."$str2 #整體不加引號(hào),若中間要出現(xiàn)別的字串需前后緊挨,且字串雙引號(hào)括住
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@}相似,可以通過(guò)變量名前綴字符,搜索已經(jīng)定義的變量,無(wú)論是否為空值。
字符串比較
[[ "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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell腳本實(shí)現(xiàn)服務(wù)器進(jìn)程監(jiān)控的方法
這篇文章主要介紹了shell腳本實(shí)現(xiàn)服務(wù)器進(jìn)程監(jiān)控的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-04-04
linux下shell腳本備份文件的方法實(shí)現(xiàn)
本文主要介紹了linux下shell腳本備份文件的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Linux Shell腳本syntax error: unexpected en
這篇文章主要介紹了Linux Shell腳本syntax error: unexpected end of file原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
利用Linux中的crontab實(shí)現(xiàn)分布式項(xiàng)目定時(shí)任務(wù)功能
crond是Linux用來(lái)定期執(zhí)行程序的命令.這篇文章主要介紹了利用Linux中的crontab實(shí)現(xiàn)分布式項(xiàng)目定時(shí)任務(wù),需要的朋友可以參考下2018-01-01

