903960266b88c66b148bdedf8f1e51e09ab8dba1
[BK-2020-03.git] / user / zeropad.sh
1 #!/bin/bash
2 # Desc: Zero-pad working dir files with initial digits for sorting
3 # Usage: zeropad.sh
4 # Version: 0.0.1
5
6 # Find the maximum number of leading digits in the filenames of working dir
7 max_digits=$(ls -1 * | sed 's/[^0-9].*//' | awk '{ if(length > L) L=length } END { print L }');
8 declare -p max_digits;
9
10 # Loop over the files and rename them
11 for file in *; do
12 # Extract the leading digits
13 digits=$(echo "$file" | sed 's/\([0-9]*\).*/\1/');
14 # Zero-pad the digits
15 padded_digits=$(printf "%0${max_digits}d" "$digits");
16 # Construct the new filename
17 new_file="${padded_digits}${file#${digits}}";
18 # Rename the file
19 mv -n "$file" "$new_file"
20 # declare -p file new_file; # debug
21 done;
22
23