enumerate with offset

This commit is contained in:
Ville Rantanen
2021-05-17 21:47:34 +03:00
parent 53c5a9aa41
commit f086c6b190

View File

@@ -11,6 +11,7 @@ Usage: file-enumerate [-k] [-p #] [-o folder]
-p Pad numbers, defaults to 4 -p Pad numbers, defaults to 4
-o Output folder name, default: enumerated -o Output folder name, default: enumerated
-c Copy instead of hard link -c Copy instead of hard link
-i Offset. start from number (default 1)
' '
exit exit
} }
@@ -18,6 +19,7 @@ keep=false
pad=4 pad=4
output=enumerated output=enumerated
hardlink="-l" hardlink="-l"
offset=1
for (( i=1; i<=$#; i++ )); do for (( i=1; i<=$#; i++ )); do
j=$(( i + 1 )) j=$(( i + 1 ))
[[ "${!i}" = "-h" ]] && _help [[ "${!i}" = "-h" ]] && _help
@@ -26,12 +28,14 @@ for (( i=1; i<=$#; i++ )); do
[[ "${!i}" = "-k" ]] && keep=true [[ "${!i}" = "-k" ]] && keep=true
[[ "${!i}" = "-p" ]] && { pad=${!j}; i=$(( i + 1 )); } [[ "${!i}" = "-p" ]] && { pad=${!j}; i=$(( i + 1 )); }
[[ "${!i}" = "-o" ]] && { output=${!j}; i=$(( i + 1 )); } [[ "${!i}" = "-o" ]] && { output=${!j}; i=$(( i + 1 )); }
[[ "${!i}" = "-i" ]] && { offset=${!j}; i=$(( i + 1 )); }
done done
printf -v padstr "%%0%dd" $pad printf -v padstr "%%0%dd" $pad
_drive() { _drive() {
ls -1p | grep -v "/$" | sort -V | cat -n | while read n f; do ls -1p | grep -v "/$" | sort -V | cat -n | while read n f; do
n=$(( n + $offset - 1 ))
printf -v padded $padstr $n printf -v padded $padstr $n
if [[ $keep = true ]]; then if [[ $keep = true ]]; then
printf -v outname "%s.%s" "$padded" "$f" printf -v outname "%s.%s" "$padded" "$f"