#!/bin/bash #Script limpalegenda. Retira caracteres desnecessários de legendas srt e mostra informações sobre o arquivo #Script codificado em utf-8. #Se você usa o Kurumin ou outra distro em iso8859-1 altere-o com o comando: iconv -f utf-8 -t iso8859-1 nomedestearquivo -o novonome #escrito por FranciscoLima - faclsp@gmail.com - linuxnomicro.blogspot.com clear #verifica se foi passado um arquivo if [ "$#" -ne 1 ] then echo echo "Atenção: Você tem que indicar um arquivo! DIGITE: limpalegenda nomedoarquivo" echo exit 1 fi #faz cópia de segurança do arquivo e retira os espaços duplicados; #triplicados; em branco no final ou no início do arquivo hora=`date +%H%M%S` cp -f $1 $1_$hora.bak sed -e 's/ / /g; s/ / /g; s/^ //g; s/^ //g; s/ \r/\r/g; s/ $//g' $1 >/tmp/$$ 2>/dev/null mv -f /tmp/$$ $1 echo "Ok: Caracteres desnecessários foram retirados" #lista informações sobre o arquivo #quantidade de linhas quant_linh=`wc -l $1 | cut -d " " -f1 ` echo echo "Este arquivo tem $quant_linh linhas" #calcula o tamanho das linhas do arquivo e mostra as 10 maiores echo "As 10 maiores linhas são:" echo tam - linha -- texto #troca as linhas vazias por linhas escrito "bco", #no redirecionamento do cat são perdidas as linhas vazias, o que atrapalha a contagem das linhas sed -e 's/^$/bco/g' $1 > /tmp/1$$ n=1 IFS=" " for i in `cat < /tmp/1$$` do quant=${#i} echo $quant -- $n -- $i >> /tmp/$$ let n++ done sort -nr /tmp/$$ | head -10 rm -f /tmp/$$ rm -f /tmp/1$$ #ver codificacao do sistema #ATENÇÂO: Só vai funcionar se a codificação deste script corresponder com a de seu sistema - veja 3ª e 4ª linhas echo "codificação"> /tmp/cod$$ cod_sis=`file -ib /tmp/cod$$ | cut -d " " -f2 | cut -d "=" -f2` rm -f /tmp/cod$$ #ver codificacao do arquivo cod_arq=`file -ib $1 | cut -d " " -f2 | cut -d "=" -f2` if [ $cod_sis != $cod_arq ] then echo echo "ATENÇÂO:" echo "Seu sistema está codificado em $cod_sis" echo "O arquivo $1 em $cod_arq" echo "Por isso os caracteres estranhos" fi