I have a main directory with 40 subdirectories with names [Set 1], [Set 2] … [Set 40], each containing 20 wallpapers with name 1.jpg, 2.jpg, … 20.jpg. I want to move all these wallpapers to the main directory and rename them as 1.jpg, 2.jpg … 800.jpg. I wrote the following Bash script but getting error.
i=1; j=1; k=1;
while [ $i -ne 41 ]; do
j=1;
while [ $j -ne 21 ]; do
mv [Set $i]/$j.jpg $k.jpg;
j=$j+1;
k=$k+1;
done;
i=$i+1;
done
bash: [: 1+1: integer expression expected bash: [: 1+1: integer expression expected
Where am I making a mistake?
Advertisement
Answer
In bash you enclose mathmatical/arithmetical operations in $(()), so
i=1; j=1; k=1;
while [ $i -ne 41 ]; do
j=1
while [ $j -ne 21 ]; do
mv "[Set ${i}]/${j}.jpg" $k.jpg
j=$(($j+1)) k=$(($k+1))
done
i=$(($i+1))
done
Should do what you want..