shell中引數的模式匹配

2021-05-22 19:42:39 字數 1088 閱讀 6959

模式匹配

引數擴充套件還包括了一些模式匹配功能,該功能帶有在檔名擴充套件或 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還提供了關鍵字匹配可變引數匹配方式。位置匹配與預設引數匹配可以緩和使用,但順序有限制。關鍵字匹配通過引數名匹配,可以改變匹配順序。可變引數匹配適於引數不確定的情況 幾點說明 位置匹配從左至右 函式頭部中 引數將傳入的引數收集到元組,對應於呼叫時多個位置引數...