模式匹配
引數擴充套件還包括了一些模式匹配功能,該功能帶有在檔名擴充套件或 globbing 中使用的萬用字元功能。注意:這不是grep
使用的正規表示式匹配。
表 2. shell 擴充套件模式匹配
擴充套件目的
$shell 像檔名擴充套件中那樣擴充套件 word,並從 parameter 擴充套件後的值的開頭刪除最短的匹配模式(若存在匹配模式的話)。使用 『@』 或 『$』 即可刪除列表中每個引數的模式。
$導致從開頭刪除最長的匹配模式而不是最短的匹配模式。
$shell 像檔名擴充套件中那樣擴充套件 word,並從 parameter 擴充套件後的值末尾刪除最短的匹配模式(若存在匹配模式的話)。使用 『@』 或 『$』 即可刪除列表中每個引數的模式。
$導致從末尾刪除最長的匹配模式而不是最短的匹配模式。
$shell 像檔名擴充套件中那樣擴充套件 pattern,並替換 parameter 擴充套件後的值中最長的匹配模式(若存在匹配模式的話)。為了在 parameter 擴充套件後的值開頭匹配模式,可以給 pattern 附上字首 #,如果要在值末尾匹配模式,則附上字首 %。如果 string 為空,則末尾的 / 可能被忽略,匹配將被刪除。使用 『@』 或 『$』 即可對列表中的每個引數進行模式替換。
$對所有的匹配(而不只是第乙個匹配)執行替換。
清單 11 給出了模式匹配擴充套件的一些基本用法。
清單 11. 模式匹配示例
[ian@pinguino ~]$ x="a1 b1 c2 d2"[ian@pinguino ~]$ echo $
b1 c2 d2
[ian@pinguino ~]$ echo $
c2 d2
[ian@pinguino ~]$ echo $
a1 b
[ian@pinguino ~]$ echo $
a[ian@pinguino ~]$ echo $
a3 b1 c2 d2
[ian@pinguino ~]$ echo $
a3 b3 c2 d2
[ian@pinguino ~]$ echo $
z3 z3 c2 d2
shell之匹配模式和擴充套件匹配模式
首先說一下什麼是匹配模式,然後再介紹擴充套件匹配模式。匹配模式這個概念就算不知道,但是也都會使用這個功能找到匹配的檔案。例如 ls ab 找到所有以ab開頭的檔案。這就是利用了 可以匹配任意字串,包括空串。匹配模式是man bash中的pattern matching,星號的含義在上面講了。用來匹配...
shell指令碼 模式匹配case
case 變數 in 模式1 命令序列1 模式2 命令序列2 模式3 命令序列3 無匹配後命令序列 esac詢問使用者,確定要繼續刪除嗎 yes no y bin bash 1請輸入刪除的使用者名稱 read p please input a username user 2輸出使用者id id us...
Python中的引數匹配
除了傳統的位置匹配與預設引數外,python還提供了關鍵字匹配可變引數匹配方式。位置匹配與預設引數匹配可以緩和使用,但順序有限制。關鍵字匹配通過引數名匹配,可以改變匹配順序。可變引數匹配適於引數不確定的情況 幾點說明 位置匹配從左至右 函式頭部中 引數將傳入的引數收集到元組,對應於呼叫時多個位置引數...