Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2007-05-02 23:01:34
Size: 722
Editor: redondos
Comment:
Revision 3 as of 2008-05-08 23:58:22
Size: 936
Editor: GreyCat
Comment: clean up
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
That can be achieved through the !() extglob operator. You'll need {{{extglob}}} set. It can be checked with:
[:glob:"Globs"] are simple patterns that can be used to match filenames or strings. They're generally not very powerful. If you need more power, you can use ''extended globs''. In [:BASH:], you'll need the {{{extglob}}} option to be set. It can be checked with:
Line 18: Line 19:
For the general case:

D
elete all files containing Pink_Floyd AND not containing The_Final_Cut:
A more complex example -- delete all files containing Pink_Floyd AND not containing The_Final_Cut:
Line 26: Line 25:
By the way: these kind of patterns can be used with KornShell and KornShell93, too. They don't have to be enabled there, but are the default patterns. By the way: these kind of patterns can be used with the KornShell, too. They don't have to be enabled there, but are the default patterns.

For a more thorough explanation of extended globs, see [:glob:].

Anchor(faq16)

How can I use a logical AND in a shell pattern (glob)?

[:glob:"Globs"] are simple patterns that can be used to match filenames or strings. They're generally not very powerful. If you need more power, you can use extended globs. In [:BASH:], you'll need the extglob option to be set. It can be checked with:

$ shopt extglob

and set with:

$ shopt -s extglob

To warm up, we'll move all files starting with foo AND not ending with .d to directory foo_thursday.d:

$ mv foo!(*.d) foo_thursday.d

A more complex example -- delete all files containing Pink_Floyd AND not containing The_Final_Cut:

$ rm !(!(*Pink_Floyd*)|*The_Final_Cut*)

By the way: these kind of patterns can be used with the KornShell, too. They don't have to be enabled there, but are the default patterns.

For a more thorough explanation of extended globs, see [:glob:].

BashFAQ/016 (last edited 2015-03-05 00:31:02 by izabera)