I was trying to rename files.
$ls
1.jpg 12.jpg 15.jpg 18.jpg 3.png 6.jpg 9.png
10.jpg 13.jpg 16.jpg 19.jpg 4.jpg 7.png
11.jpg 14.jpg 17.jpg 2.jpg 5.jpg 8.jpg
From 1.jpg to 01.jpg for files {1..9}.* irrespective of extension.
I tried the following for loop in terminal it worked perfectly.
$for i in {1..9}.*;do mv "$i" 0"$i";done
When I wrote the same in shell script it didn’t work.
#!/bin/sh
for i in {1..9}.*;do mv "$i" 0"$i";done
It gave the following error
mv cannot stat '{1..9}.*':No such file or directory
I figured that posix shell doesn’t support {1..9}.* syntax.
Q:what is the equivalent of this in posix?
-Thank You.
>Solution :
You can use the wildcard pattern [1-9].*.
#!/bin/sh
for i in [1-9].*
do
mv "$i" 0"$i"
done