X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/91872e11095679453071cdc685883a85d2322ce2..bf9fed34f59ced6a0ffc1196d68803ad27904a0a:/user/zeropad.sh?ds=sidebyside diff --git a/user/zeropad.sh b/user/zeropad.sh index 369d8c0..b9b032b 100755 --- a/user/zeropad.sh +++ b/user/zeropad.sh @@ -1,12 +1,31 @@ #!/bin/bash # Desc: Zero-pad working dir files with initial digits for sorting -# Usage: zeropad.sh -# Version: 0.0.4 +# Usage: zeropad.sh [str fext] +# Example: zeropad.sh; +# zeropad.sh ".jpg"; +# Input: arg1 str file extension of files to apply changes to +# Version: 0.1.1 + +declare fext; # file extension list_files() { - find . -mindepth 1 -maxdepth 1 -type f -exec basename '{}' \; ; -}; + # Desc: Lists working directory file basenames + # Usage: list_files + # Input: fext var file extension + # Output: stdout a line-delimited list of file names + if [[ -z "$fext" ]]; then + find . -mindepth 1 -maxdepth 1 -type f -exec basename '{}' \; ; + else + find . -mindepth 1 -maxdepth 1 -type f -exec basename '{}' \; \ + | grep -E -- "${fext}$" ; + fi; +}; # list pwd file basenames main () { + # Read file extension if provided + if [[ -n "$1" ]]; then + fext="$1"; + fi; + # Find the maximum number of leading digits in the filenames of working dir max_digits="$(list_files | sed -e 's/[^0-9].*//' | awk '{ if(length > L) L=length } END { print L }')"; # declare -p max_digits; # debug @@ -23,15 +42,13 @@ main () { # Construct the new filename new_file="${padded_digits}${file#${digits}}"; # Rename the file + if [[ "$file" == "$new_file" ]]; then continue; fi; mv -n "$file" "$new_file" # declare -p file new_file; # debug done < <(list_files); -}; +}; # main program main "$@"; - - - # Author: Steven Baltakatei Sandoval # License: GPLv3+