python带通配符的字符串匹配_Bash技巧:实例介绍数个参数扩展表达式以处理字符串变量...
生活随笔
收集整理的這篇文章主要介紹了
python带通配符的字符串匹配_Bash技巧:实例介绍数个参数扩展表达式以处理字符串变量...
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Linux 的 bash shell 提供了多種形式的參數(shù)擴(kuò)展表達(dá)式,可以獲取變量自身的值,或者對(duì)變量值進(jìn)行特定處理得到一個(gè)新的值,等等。
本篇文章對(duì)字符串變量值相關(guān)的參數(shù)擴(kuò)展表達(dá)式進(jìn)行匯總說明。
假設(shè)在 bash 中定義了 filepath=example/subdir/testfile.txt 這樣一個(gè)變量,可以使用下面的參數(shù)擴(kuò)展來獲取一些值:
- ${filepath}
獲取 filepath 變量的值。
例如,echo ${filepath} 命令打印的結(jié)果是 example/subdir/testfile.txt。 - ${#filepath}
獲取到 filepath 變量值的字符個(gè)數(shù),也就是字符串長(zhǎng)度。
例如,echo ${#filepath} 命令打印的結(jié)果是 27。 - ${filepath:4:3}
從 filepath 變量值開頭的第 4 個(gè)字符開始,往后獲取三個(gè)字符,得到一個(gè)子字符串。
例如,echo ${filepath:4:3} 命令打印的結(jié)果是 ple。
注意是從開頭的第 0 個(gè)字符開始數(shù)起。
這個(gè)表達(dá)式的格式是 ${parameter:offset:length},offset 指定從哪個(gè)位置開始獲取字符,length 指定獲取多少個(gè)字符。 - ${filepath: -3:3}
從 filepath 變量值倒數(shù)的第 3 個(gè)字符開始,往后獲取三個(gè)字符,得到一個(gè)子字符串。
例如,echo ${filepath: -3:3} 命令打印的結(jié)果是 txt。
負(fù)數(shù)的 offset 表示倒數(shù)的偏移值。冒號(hào)和負(fù)號(hào)之間要加空格。
注意是從末尾的第 1 個(gè)字符開始往前數(shù)。 - ${filepath#*/}
在 filepath 變量值中,從頭開始匹配所給的 */ 這個(gè)模式,刪除第一個(gè)匹配的模式,返回后面剩余的內(nèi)容。
這里用 * 通配符來匹配開頭的任意字符串。
例如,echo ${filepath#*/} 打印的結(jié)果是 subdir/testfile.txt。
這個(gè)表達(dá)式的格式是 ${parameter#word},從 parameter 變量值中刪除最短匹配 word 的前綴部分。 - ${filepath##*/}
在 filepath 變量值中,從頭開始匹配所給的 */ 這個(gè)模式,一直刪除到最后一個(gè)匹配的模式,返回后面剩余的內(nèi)容。
這里用 * 通配符來匹配開頭的任意字符串。
例如,echo ${filepath##*/} 打印的結(jié)果是 testfile.txt。
這個(gè)表達(dá)式的格式是 ${parameter##word},從 parameter 變量值中刪除最長(zhǎng)匹配 word 的前綴部分。 - ${filepath%/*}
在 filepath 變量值中,從末尾往前匹配所給的 /* 這個(gè)模式,刪除第一個(gè)匹配的模式,返回前面剩余的內(nèi)容。
這里用 * 通配符來匹配末尾的任意字符串。
例如,echo ${filepath%/*} 打印的結(jié)果是 example/subdir。
這個(gè)表達(dá)式的格式是 ${parameter%word},從 parameter 變量值中刪除最短匹配 word 的后綴部分。 - ${filepath%%/*}
在 filepath 變量值中,從末尾往前匹配所給的 /* 這個(gè)模式,一直刪除到最后一個(gè)匹配的模式,返回前面剩余的內(nèi)容。
這里用 * 通配符來匹配末尾的任意字符串。
例如,echo ${filepath%%/*} 打印的結(jié)果是 example。
這個(gè)表達(dá)式的格式是 ${parameter%%word},從 parameter 變量值中刪除最長(zhǎng)匹配 word 的后綴部分。 - ${filepath/[et]/M}
在 filepath 變量值中,把第一個(gè)匹配的小寫字母 e、或者小寫字母 t,替換成大寫字母 M。
這里用 [et] 路徑名擴(kuò)展來匹配小寫字母 e、或者小寫字母 t。
這個(gè)表達(dá)式的格式是 ${parameter/pattern/string},把匹配 pattern 的字符串替換成 string 字符串。
只替換第一個(gè)匹配的模式字符串。這個(gè)模式字符串可以位于變量值的開頭、中間、以及末尾部分。
例如,echo ${filepath/[et]/M} 打印的結(jié)果是 Mxample/subdir/testfile.txt。 - ${filepath//[et]/M}
在 filepath 變量值中,把所有匹配的小寫字母 e、或者小寫字母 t,替換成大寫字母 M。
這里用 [et] 擴(kuò)展來匹配小寫字母 e、或者小寫字母 t。
讓 pattern 模式字符串以字符 ‘/’ 開頭,表示替換所有匹配的字符串。
例如,echo ${filepath//[et]/M} 打印的結(jié)果是 MxamplM/subdir/MMsMfilM.MxM。 - ${filepath/subdir}
在 filepath 變量值中,刪除匹配的 subdir 字符串。
例如,echo ${filepath/subdir} 打印的結(jié)果是 example//testfile.txt。
這個(gè)表達(dá)式?jīng)]有提供替換之后的字符串,表示刪除所匹配的字符串。${parameter#word} 只能刪除匹配的前綴。${parameter%word} 只能刪除匹配的后綴。
而 ${parameter/pattern} 可以刪除任意位置的匹配字符串,包括中間位置。 - ${filepath^^}
把 filepath 變量值的所有字符都轉(zhuǎn)換為大寫。
例如,echo ${filepath^^} 打印的結(jié)果是 EXAMPLE/SUBDIR/TESTFILE.TXT。
這個(gè)表達(dá)式的格式是 ${parameter^^pattern},把 parameter 變量值中匹配 pattern 模式的每一個(gè)小寫字母都轉(zhuǎn)成大寫。
如果沒有提供 pattern 模式,表示匹配任意一個(gè)字符。 - ${filepath,,}
把 filepath 變量值的所有字符都轉(zhuǎn)換為小寫。
例如,echo ${filepath,,} 打印的結(jié)果是 example/subdir/testfile.txt。
這個(gè)表達(dá)式的格式是 ${parameter,,pattern},把 parameter 變量值中匹配 pattern 模式的每一個(gè)大寫字母都轉(zhuǎn)成小寫。
如果沒有提供 pattern 模式,表示匹配任意一個(gè)字符。 - ${filepath^}
把 filepath 變量值的首字符轉(zhuǎn)成大寫。
例如,echo ${filepath^} 打印的結(jié)果是 Example/subdir/testfile.txt。
這個(gè)表達(dá)式的格式是 ${parameter^pattern},把匹配 pattern 模式的 parameter 變量值首字符轉(zhuǎn)成大寫。
如果沒有提供 pattern 模式,表示匹配任意單個(gè)字符。 - ${filepath,}
把 filepath 變量值的首字符轉(zhuǎn)成小寫。
例如,echo ${filepath,} 打印的結(jié)果是 example/subdir/testfile.txt。
這個(gè)表達(dá)式的格式是 ${parameter,pattern},把匹配 pattern 模式的 parameter 變量值首字符轉(zhuǎn)成小寫。
如果沒有提供 pattern 模式,表示匹配任意單個(gè)字符。
上面內(nèi)容匯總說明了多個(gè)字符串變量值相關(guān)的擴(kuò)展表達(dá)式,方便統(tǒng)一收藏查閱。
關(guān)于這些擴(kuò)展表達(dá)式的詳細(xì)說明、以及更多的測(cè)試?yán)?#xff0c;可以查看我前面三篇以 “Bash技巧:使用參數(shù)擴(kuò)展” 開頭的文章。
總結(jié)
以上是生活随笔為你收集整理的python带通配符的字符串匹配_Bash技巧:实例介绍数个参数扩展表达式以处理字符串变量...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot springclo
- 下一篇: wireshark-win64-3.4.