next code doesnt work because of spaces in file names, How to fix?
IFS = \'\\n\'
for name in `ls `
do
number=`echo \"$name\" | grep -o \"[0-9]\\{1,2\\}\"
Replace
for name in `ls`
with:
ls | while read name
Notice: bash variable scoping is awful. If you change a variable inside the loop, it won't take effect outside the loop (in my version it won't, in your version it will). In this example, it doesn't matter.
Notice 2: This works for file names with spaces, but fails for some other strange but valid file names. See Charles Duffy's comment below.