summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraura <boneyaard@gmail.com>2024-11-02 06:42:16 +0100
committeraura <boneyaard@gmail.com>2024-11-02 06:42:16 +0100
commita2bb75b2cbabb4a339b2bf577375436ec765d514 (patch)
tree4e92e36c7fc9ec2a418e340c5401e036e90ee395
parentb13e4e4a5b80a626af6739ee94df7ac704a9944e (diff)
a
-rwxr-xr-xsrtrename42
1 files changed, 42 insertions, 0 deletions
diff --git a/srtrename b/srtrename
new file mode 100755
index 0000000..33166e8
--- /dev/null
+++ b/srtrename
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# Enable debug output
+set -x
+
+# Loop through all subtitle files
+for srt in *.srt; do
+ # Skip if no .srt files found
+ [[ -f "$srt" ]] || { echo "No .srt files found"; exit 1; }
+
+ echo "Processing subtitle file: $srt"
+
+ # Extract the episode number (S01E04) - more specific pattern
+ episode=$(echo "$srt" | grep -o "S[0-9]\{2\}E[0-9]\{2\}")
+ echo "Extracted episode number: $episode"
+
+ # Find the corresponding video file
+ video_file=$(find . -maxdepth 1 -type f -name "*${episode}*.mkv")
+ echo "Found video file: $video_file"
+
+ # If a matching video file is found
+ if [[ -n "$video_file" ]]; then
+ # Remove the .mkv extension and leading ./
+ video_basename=$(basename "$video_file" .mkv)
+ # Create new subtitle name
+ new_name="${video_basename}.srt"
+
+ echo "Will rename '$srt' to '$new_name'"
+
+ # Only rename if the new name is different
+ if [[ "$srt" != "$new_name" ]]; then
+ mv -v "$srt" "$new_name"
+ else
+ echo "File already has the correct name"
+ fi
+ else
+ echo "No matching video file found for '$srt'"
+ # List all mkv files for debugging
+ echo "Available mkv files:"
+ ls -l *.mkv
+ fi
+done