diff options
| author | aura <boneyaard@gmail.com> | 2024-11-02 06:42:16 +0100 |
|---|---|---|
| committer | aura <boneyaard@gmail.com> | 2024-11-02 06:42:16 +0100 |
| commit | a2bb75b2cbabb4a339b2bf577375436ec765d514 (patch) | |
| tree | 4e92e36c7fc9ec2a418e340c5401e036e90ee395 | |
| parent | b13e4e4a5b80a626af6739ee94df7ac704a9944e (diff) | |
a
| -rwxr-xr-x | srtrename | 42 |
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 |
