2008/07/24

extglob (extended pattern matching bash) 讓你的 script 更有用

我很喜歡 Perl 簡潔有力,也很喜歡 Sed, Awk 等等,Bash 也打開了以往的限制,增加了 extglob 選項

?(pattern-list) 匹配零個或一個
*(pattern-list) 匹配零個或多個
+(pattern-list) 匹配一個或多個
@(pattern-list) 剛好一個匹配
!(pattern-list) 匹配除指定模式以外的任何字符

我是不太常用,這邊所提的內容您也可以搭配 grep 來達成。假設,我不想要 a開頭的所有檔,可以這麼寫:

$ shopt -s extglob
$ ls !(a*)

第一行只是要打開 extglob, 只需要做過一次即可。若想關掉,可以用 shopt -u extglob

0 意見: