1 votes

Localiser les fichiers .srt dans différents répertoires et modifier l'encodage des caractères

J'ai un excellent script que j'utilise pour convertir l'encodage dans les fichiers srt. J'ai également créé un alias pour ce script afin de pouvoir entrer le répertoire dans lequel je souhaite exécuter le script et utiliser mon alias. konvert .

Cependant, j'ai maintenant le scénario suivant : plus de 20 répertoires avec des fichiers srt à l'intérieur. Que dois-je faire pour pointer mon script vers tous ces répertoires en une seule commande ?

Heureusement, tous ces répertoires sont regroupés dans un répertoire principal, et je pense donc qu'il devrait y avoir un moyen simple de le faire.

Contenu de la script

#!/bin/bash for file in *.srt; do iconv -f CP1250 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"; done

3voto

Shaun Bohannon Points 271

Assez facile à réaliser sans votre script. en utilisant la ligne de commande suivante (à l'aide de l'application recode plutôt que droite iconv ) qui doit être exécuté à partir du répertoire racine de vos fichiers srt :

find . -name '*.srt' -type f -exec bash -c 'recode -v CP1250..UTF-8 "$0"' {} \;

La ligne de commande recherche récursivement pour tous les fichiers srt et lorsque chacun est trouvé recode travaille sur chaque fichier pour changer le codage des caractères de CP1250 à UTF-8. Avec recode la modification de l'encodage ne nécessite pas le changement maladroit de nom de fichier requis par le système iconv ...

La ligne de commande est vraiment cool :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X