Localiza arquivos .srt em diretórios diferentes e altera a codificação de caracteres

1

Eu tenho um ótimo script que eu uso para converter a codificação em srt.files. Eu também criei um alias para esse script para que eu possa inserir o diretório onde eu quero executar o script e usar meu alias konvert .

No entanto, tenho agora o seguinte cenário: mais de 20 diretórios com srt.files dentro. O que devo fazer para apontar meu script para todos esses diretórios com apenas um comando?

Felizmente todos esses diretórios estão juntos dentro de um diretório principal, então acredito que deve haver uma maneira fácil de fazer isso.

Conteúdo do script

#!/bin/bash for file in *.srt; do iconv -f CP1250 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"; done 
    
por Dunav Rajna 30.01.2018 / 22:18

1 resposta

3

Fácil o suficiente para realizar sem o seu script usando a seguinte linha de comando (usando o aplicativo recode em vez de iconv ) que deve ser executado a partir do diretório raiz de seus arquivos srt:

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

A linha de comando pesquisa recursivamente para todos os arquivos srt e quando cada um é encontrado, recode funciona em cada arquivo para alterar a codificação de caracteres de CP1250 para UTF-8. Com recode , a alteração de codificação não requer a mudança de nome de arquivo desajeitada exigida por iconv ...

Quão legal é a linha de comando:)

    
por andrew.46 31.01.2018 / 09:37