Skip to content
Advertisement

bash wildcard n digits

So I’ve got the following files in the tmp directory:

JavaScript

if I wanted to list only the files that end in ‘.digits’ (0, 1, 22, 4444) but not (t9) I could try and use wildcards such as this:

JavaScript

however I get the following results with the ugly error

JavaScript

I’ve also tried using {0..999} but that also results in the same sorts of errors (and a lot more of them). Any clues as how to do this without errors from the experts?

Advertisement

Answer

At least in bash 4, when the extglob shell option is enabled:

JavaScript

The pattern +([0-9]) there matches one or more digits.

You can read more about this in the Pattern Matching section of man bash.

UPDATE

Actually, as @chepner pointed out, since extglob was introduced in version 2.02, this should work in pretty much every bash you come across today, unless you pulled your distro out of a rock or something.

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement