Use Sed / Awk para corrigir arquivos SRT defeituosos

0

Recentemente eu baixei alguns arquivos SRT mal formatados, tendo o formato de horário confuso como

HH:MM:SS:XXX

considerando que deve ser

HH:MM:SS,XXX

O principal problema agora é substituir o terceiro cólon por uma vírgula em todas as linhas de tempo formatadas como

HH:MM:SS,XXX --> HH:MM:SS,XX

Alguém pode sugerir um script sed / awk para corrigir esse problema em todo o arquivo? Eu tentei

sed 's/:/,/3;s/:/,/5' file

mas parece que não funcionou

Editar: Respondeu minha própria pergunta, tendo esquecido tudo sobre backreferences

sed -E "s/([0-9][0-9])(:)([0-9][0-9][0-9])/,/g" 
    
por leoleo 02.10.2012 / 12:48

3 respostas

1

Diga sed para substituir dois pontos que não são seguidos por mais dois-pontos:

sed 's/:\([^:]\+\)$/,/'
    
por 02.10.2012 / 12:54
0

A substituição da terceira e sexta ocorrência de cólon em linhas contendo --> funciona aqui:

sed '/-->/ { s/:/,/6; s/:/,/3 }'

Faça o inverso para que a ordem de ocorrência seja mantida.

    
por 02.10.2012 / 15:07
0

Substitua qualquer coisa que corresponda a dois pontos + dígitos + fim de linha no comando + o que foi encontrado

sed  's/:([0-9]*)$/,/' file
    
por 02.10.2012 / 15:27

Tags