No need to cry -- Bash does it this way:
DSC{95..107}.jpg. dima@fatty:/media/usb/DCIM/100RICOH$ ls R<22399-22402>*
R0022399.JPG R0022400.JPG R0022401.JPG R0022402.JPG
dima@fatty:/media/usb/DCIM/100RICOH$ bash -c 'ls R {22392..22402}*'
ls: cannot access R22399*: No such file or directory
ls: cannot access R22400*: No such file or directory
ls: cannot access R22401*: No such file or directory
ls: cannot access R22402*: No such file or directory
Bash seems to treat these as strings, not like numbers. So in this specific case, I could have manually counted the number of 0s that are required. In some other case where the field width wasn't constant, I wouldn't be able to do that. What if I have filesfile.1, file.2, file.3, ..., file.9, file.10, file.11, ...
How do I pick 9-11 in bash? The point is zsh has features that are a real productivity boost. It's certainly arguable whether a switch is worthwhile, but claiming that these features are just "cosmetic" is wrong.
> How do I pick 9-11 in bash?
Like so: file.{9..11}
I think that you mean for the files to be numbered like: file.009
file.010
file.011
Bash would try to expand: file.{9..11} => file.9 file.10. file.11
file.0{9..11} => file.09 file.010 file.011
file.00{9..11} => file.009 file.0010 file.0011
Neither would match all files. echo file.0{09..11}
file.009 file.010 file.011True, but this works: file.*{9..11}
It globs on the LHS, and requires the RHS to be literally consistent with the generated index.
I had the same problem with my earlier example, and the above is how I worked it out.
file.{009..011}Your point is correct -- Bash is treating these as strings. I didn't have your file names so I tried a similar example, and I just realized I have to correct my example. I have a directory of graphic files with embedded numbers with leading zeros, for example 001 to 031. I was able to say:
$ ls geographic_harbor_2012_06_02_*{1..31}.JPG
And get all the members. But it's not the same as your example.
$ ls
R1004.jpg R1006.jpg R1008.jpg R1010.jpg R1012.jpg
R1005.jpg R1007.jpg R1009.jpg R1011.jpg R1013.jpg
$ ls R{1005..1009}*
R1005.jpg R1006.jpg R1007.jpg R1008.jpg R1009.jpg