Téměř vždy, když si chci přehrát film, ke kterému jsem stáhl titulky, musím je přejmenovat tak, aby měli stejný název jako film. (Případně titulky ručně přiřadit v přehrávači.) Většinou to dělám takhle:
-
Zvolím Přejmenovat u souboru s filmem.
-
Protože je označena část bez přípony, zkopíruji ji.
-
Zruším nebo potvrdím dialog pro přejmenování.
-
Zvolím Přejmenovat u souboru s titulky.
-
Protože je označena část bez přípony, vložím zkopírované jméno.
-
Potvrdím dialog pro přejmenování.
Samozřejmě, celá procedura je o něco rychlejší s pomocí klávesnice
-
[F2] při zvoleném souboru s videem
-
[Ctrl+c]
-
[Enter]
-
Šipky pro přesun na soubor s titulky, případně klik myší, pokud jsou soubory „daleko od sebe“.
-
[F2]
-
[Ctrl+v]
-
[Enter]
Dnes jsem si ale řekl dost! Vytvořil jsem skript, který vše udělá za mě. Stačí jej přiřadit jako vlastní akci v Thunaru, nebo jiném správci souborů. Poté označíte oba soubory a z kontextové nabídky zvolíte Přejmenovat titulky.
subrnm
#!/bin/bash
# BSDL Miro Hrončok <miro@hroncokcz>
# subrnm .avi .srt (or vice versa)
if [ $# -ne 2 ]; then
#echo "USAGE: subrnm .avi .srt (or vice versa)"
zenity --error --text "Nebyly vybrány dva soubory"
exit 1
fi
# Which is which
filename=$(basename "$1")
extension=${filename##*.}
# Video first
if [ "$extension" == "avi" ] || [ "$extension" == "mp4" ] || [ "$extension" == "crdownload" ]; then
#echo "First file is a video"
subtitles=$(basename "$2")
extension=${subtitles##*.}
if [ "$extension" != "srt" ] && [ "$extension" != "sub" ]; then
#echo "First file is a video. Second file are not subtitles"
zenity --error --text "První soubor je videem, ale druhý nejsou titulky"
exit 1
fi
filename=${filename%.*}
dir=$(dirname "$1")
mv "$2" "$dir/$filename.$extension"
exit 0
fi
# Subtitles first
if [ "$extension" == "srt" ] || [ "$extension" == "sub" ]; then
#echo "First file are subtitles"
video=$(basename "$2")
videext=${video##*.}
if [ "$videext" != "avi" ] && [ "$videext" != "mp4" ] && [ "$videext" != "crdownload" ]; then
#echo "First file are subtitles. Second file in not a video"
zenity --error --text "První soubor jsou titulky, ale druhý není videem"
exit 1
fi
video=${video%.*}
dir=$(dirname "$2")
mv "$1" "$dir/$video.$extension"
exit 0
fi
#echo "USAGE: subrnm .avi .srt (or vice versa)"
zenity --error --text "První soubor není videem ani to nejsou titulky"
exit 1
Budete potřebovat balíček zenity. Pokud zenity nechcete používat, skript patřičně upravte (jsou v něm i zakomentovaná echa, pokud ho chcete používat raději v terminálu).