回答:
簡単に言えば、グロビングとはパターンマッチングのことです。Bashはecho l*
、現在のディレクトリ内でletterで始まるファイルのリストに展開するような単純なグロビングを使用しますl
。もちろん、あなたが推測できるように、それはシンプルで制限されています。
を入力しextglob
ます。ご想像のとおり、これはの略ですextended globbing
。このオプションにより、より高度なパターンマッチングが可能になります。からman bash
:
extglob If set, the extended pattern matching features described
above under Pathname Expansion are enabled.
そしてその少し前:
If the extglob shell option is enabled using the shopt builtin, several
extended pattern matching operators are recognized. In the following
description, a pattern-list is a list of one or more patterns separated
by a |. Composite patterns may be formed using one or more of the
following sub-patterns:
?(pattern-list)
Matches zero or one occurrence of the given patterns
*(pattern-list)
Matches zero or more occurrences of the given patterns
+(pattern-list)
Matches one or more occurrences of the given patterns
@(pattern-list)
Matches one of the given patterns
!(pattern-list)
Matches anything except one of the given patterns
extglob
使用できる方法は多数あります。Linux JournalとGregのwikiにはかなり良い例が提供されています。