-for file in *; do
- # Extract the leading digits
- digits="$(echo "$file" | sed 's/\([0-9]*\).*/\1/')";
- # Zero-pad the digits
- padded_digits="$(printf "%0${max_digits}d" "$digits")";
- # Construct the new filename
- new_file="${padded_digits}${file#${digits}}";
- # Rename the file
- mv -n "$file" "$new_file"
- # declare -p file new_file; # debug
-done;
+while read -r file; do
+ re='^[0-9]+';
+ if [[ ! "$file" =~ $re ]]; then continue; fi;
+
+ # Extract the leading digits
+ digits="$(echo "$file" | sed 's/\([0-9]*\).*/\1/')";
+ # Zero-pad the digits
+ padded_digits="$(printf "%0${max_digits}d" "$digits")";
+ # Construct the new filename
+ new_file="${padded_digits}${file#${digits}}";
+ # Rename the file
+ mv -n "$file" "$new_file"
+ # declare -p file new_file; # debug
+done < <(find . -mindepth 1 -maxdepth 1 -type f);