Dank aan boeiahwa voor de oplossing, zie de oorspronkelijke post en hieronder de vertaling daarvan:
Boeiahwa heeft onderstaand script geschreven op WSLv2, maar het werkt ook op Mac en Linux. Vereiste packages zijn: sed of gsed, iconv, uchardet. Deze kunnen geïnstalleerd worden met brew.
enco.sh:
#!/bin/bash
if command -v gsed &> /dev/null; then
regexec="gsed"
elif command -v sed &> /dev/null; then
regexec="sed"
else
echo "Executables not working."
exit 0
fi
for fn in "${@}"; do
fn="$(realpath $fn)"
fenc="$(uchardet "$fn")"
tenc=UTF-8
if [ "$fenc" = "ISO-8859" ]; then
fenc="ISO-8859-15"
elif [ "$fenc" = "UTF-8" ]; then
echo "File already is in UTF-8 encoding."
continue
elif [ "$fenc" = "" ]; then
echo "Something wong (FENC: $fenc)."
break
elif [ "$fenc" = "Non-ISO" ]; then
echo "Something wong (FENC: $fenc)."
break
elif [ "$fenc" = "MAC-CENTRALEUROPE" ]; then
fenc="MACCENTRALEUROPE"
fi
if [ ! -f "$fn" ]; then
echo "No valid file specified."
break
fi
iconv -f "$fenc" -t "$tenc" "$fn" > "${fn%/*}/temp.file" 2>&1
wait
if [ -f "${fn%/*}/temp.file" ]; then
mv "${fn%/*}/temp.file" "$fn"
fi
done
Zo maak je het script executable:
(sudo) chmod +x enco.sh
Gebruik:
enco.sh /path/to/file.srt
enco.sh file.srt