Une erreur inattendue s'est produite.

Supprimer les sauts de ligne en trop dans un sous-titre en .srt - Snippets

Supprimer les sauts de ligne en trop dans un sous-titre en .srt

On convertit avec iconv (et détection automatique de l'encoding avec uchardet), car certains sous-titres sont en utf16. Puis on supprime les retour chariot Windows qui empêchent de faire quoi que ce soit. On supprime alors les lignes commençant par un newline. On rajoute un newline aux lignes ne comportant que l'index. Enfin, on supprime la première ligne (qui alors ne contient qu'un newline).

for file in *.srt; do cp "$file" "$file.bak"; encoding=$(uchardet "$file"); iconv -f $encoding -t utf8 "$file" -o "$file.utf8"; tr -d '\r' < "$file.utf8" | sed '/^$/d' | sed 's/^\([[:digit:]]\+\)$/\n\1/gm' | tail -n +2 > "$file"; rm "$file.utf8"; done