linux 字符串string操作(截取、提取、长度计算等)
1、按照指定字符提取
${varible##*string} 從左向右截取最后一個(gè)string后的字符串
${varible#*string}從左向右截取第一個(gè)string后的字符串
${varible%%string*}從右向左截取最后一個(gè)string后的字符串
${varible%string*}從右向左截取第一個(gè)string后的字符串
ex:
延申:
1) 做字符串刪除
${變量名#substring正則表達(dá)式}從字符串開(kāi)頭開(kāi)始配備substring,刪除匹配上的表達(dá)式。
${變量名%substring正則表達(dá)式}從字符串結(jié)尾開(kāi)始配備substring,刪除匹配上的表達(dá)式。
注意:${str##*/}, ${str%/*} 分別是得到文件名,或者目錄地址最簡(jiǎn)單方法。
str="/home/domi/study"echo ${str} /home/domi/studyecho ${str#/} home/domi/studyecho ${str#*/} home/domi/studyecho ${str##*/} study2)?字符串替換
${變量/查找/替換值} 一個(gè)“/”表示替換第一個(gè),”//”表示替換所有,當(dāng)查找中出現(xiàn)了”/”請(qǐng)加轉(zhuǎn)義符”\/”表示。
echo ${str/\//\\} \home/domi/studyecho ${str//\//\\} \home\domi\study?
2、提取指定位置、長(zhǎng)度的字符串
${varible:n1:n2}:截取變量varible從n1開(kāi)始,長(zhǎng)度為n2的字符串。
echo ${str:2:2} cdecho ${str:2:1} cecho ${str:0:1} aecho ${str:0:2} ab${varible:n1-n3:n2}:截取變量varible從后到前計(jì)算(n1-n3)位置開(kāi)始,長(zhǎng)度為n2的字符串。
echo ${str:1-2:2} 3echo ${str:1-3:2} 23echo ${str:1-3:1} 2?
3、提取指定格式的字符串
比如獲取后綴名
ls -l | cut -d “.” -f2
注釋:ls -l顯示所有的文件信息,cut按照(.)來(lái)切割,并提取第二列數(shù)據(jù)。
?
4、字符串長(zhǎng)度
echo ${#str}?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的linux 字符串string操作(截取、提取、长度计算等)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 删除小于、大于固定大小的文件
- 下一篇: linux shell判断文件、目录是否