From af5ebf21f16910aaa506bc12ae620db392f138e0 Mon Sep 17 00:00:00 2001 From: sickprodigy Date: Tue, 21 Oct 2025 19:45:17 -0400 Subject: [PATCH] Ensure the video ID appears at the end of the filename inside square brackets. --- move-[id]-to-end.bash | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 move-[id]-to-end.bash diff --git a/move-[id]-to-end.bash b/move-[id]-to-end.bash new file mode 100644 index 0000000..6a8b515 --- /dev/null +++ b/move-[id]-to-end.bash @@ -0,0 +1,28 @@ +#!/bin/bash +for f in *; do + # Skip directories + [ -f "$f" ] || continue + + # Extract the ID inside () or [] + id=$(echo "$f" | sed -n 's/.*[([]\([^])]*\)[])].*/\1/p') + + # If there's no ID, skip + [ -z "$id" ] && continue + + # Remove the ID portion (and any leftover extra spaces) + base=$(echo "$f" | sed 's/[([][^])]*[])]//g' | sed 's/ / /g' | sed 's/ *$//') + + # Separate name and extension + name="${base%.*}" + ext="${base##*.}" + + # Rebuild new name (handle files with and without extensions) + if [ "$name" != "$ext" ]; then + newname="${name} [${id}].${ext}" + else + newname="${base} [${id}]" + fi + + # Only rename if different + [ "$f" != "$newname" ] && mv -- "$f" "$newname" +done