feat(user/zeropad.sh):Permit ignoring of file extension via arg
authorSteven Baltakatei Sandoval <baltakatei@gmail.com>
Mon, 15 Jul 2024 21:58:45 +0000 (21:58 +0000)
committerSteven Baltakatei Sandoval <baltakatei@gmail.com>
Mon, 15 Jul 2024 21:58:45 +0000 (21:58 +0000)
user/zeropad.sh

index e008b7192fe19355ab1fbbae1b34bd40853708af..ad281b1709d75f9adce575843432d77c1c8bac5e 100755 (executable)
@@ -1,16 +1,30 @@
 #!/bin/bash
 # Desc: Zero-pad working dir files with initial digits for sorting
-# Usage: zeropad.sh
-# Version: 0.0.5
+# Usage: zeropad.sh [str fext]
+# Example: zeropad.sh;
+#          zeropad.sh ".jpg";
+# Version: 0.1.0
+
+declare fext; # file extension
 
 list_files() {
     # Desc: Lists working directory file basenames
     # Usage: list_files
-    # Input: none
+    # Input: fext  var  file extension
     # Output: stdout  a line-delimited list of file names
-    find . -mindepth 1 -maxdepth 1 -type f -exec basename '{}' \; ;
+    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