Write a wildcard to match all files (does not matter the files are in which directory, just ask for the wildcard) named in the following rule: starts with a string “image”, immediately followed by a one-digit number (in the range of 0-9), then a non-digit char plus anything else, and ends with either “.jpg”
or “.png”.
For example, image7.jpg
and image0abc.png should be matched by your wildcard while image2.txt
or image11.png
should not.
My folder contained these files imag2gh.jpeg
image11.png
image1agb.jpg
image1.png
image2gh.jpg
image2.txt
image5.png
image70.jpg
image7bn.jpg
Screenshot.png
If my command work it should only display image1agb.jpg
image1.png
image2gh.jpg image5.png image70.jpg image7bn.jpg
This is the command I used (ls -ad image[0-9][^0-9]*{.jpg,.png})
but I'm only getting this image1agb.jpg
image2gh.jpg
image7bn.jpg
so I'm missing (image1.png image5.png)
Kali Terminal and what I did
ls -ad image[0-9][.0-9]*{,jpg..png}
Character ranges like [0-9] are usually seen in RegEx statements and such. They won't work as shell globs (wildcards) like that.
ls -a1
to standard input of the grep
command (which does support RegEx). grep
filter filenames.ls -a1|grep "image"'[[:digit:]]\+[[:alpha:]]*\.\(png\|jpg\)'
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.