Números ascendentes a cada x linhas e lote modificando timestamps para o arquivo .srt

1

Eu tenho lutado com a conversão de um arquivo no seguinte formato

0:01:00.340 --> 0:01:01.380
***subtitle text***

0:01:01.380 --> 0:01:02.390
***subtitle text***

no formato padrão .srt, por exemplo:

1
0:01:00,320 --> 0:01:01,360
***subtitle text***

2    
0:01:01,360 --> 0:01:02,320
***subtitle text***

Cheers antecipadamente!

EDIT: removeu informações sobre meu progresso antes da resposta da LotPing.

    
por unironicScriptKiddy 22.04.2018 / 15:15

2 respostas

2

Meu editor favorito Textpad pode fazer isso, caso contrário, você precisará de um vbscript ou Powershell.

EditarORegExficoumaiscomplexocom3gruposcapturandoasregiõesemtornodospontos/vírgulas

Pesquisa:^(\d{1,2}:\d{2}:\d{2})\.(\d{3}[->]+\d{1,2}:\d{2}:\d{2})\.(\d{3})
Substitua:\i\n$1,$2,$3

OqueoRegExfazé:

  • pesquiseumpadrãoh:mm:ssemque\drepresentaumdígitoe{1,2}éumquantificador,oquesignificaumaaduasocorrências.{2}éapenasduasvezes,etc.
  • [->]+éumaclassedequalquerumdoscaracteresdentrode[]oseguintequantificador+significapelomenosummasomáximopossíveldoscaracteresdeclasse.
  • ^ancoradonalinhabegine
  • (grupos)isso
  • seguidoporumpontoliteral

Issoésubstituídopor

  • oincremento\iespecialparaoTextPad
  • a\nnewline
  • eopadrão$1agrupado,tambémconhecidocomotempo
  • eumavírgulaliteral.

UmafontevaliosaparaoRegExé Regular-Expressions.info
e testar interativamente um uso de RegEx ou RE RegEx101.com

O RE acima RegEx101.com sem o \i -feature

    
por 22.04.2018 / 17:25
0

Para uma solução de linha de comando, eu usaria JREPL.BAT - um script puro ( JScript / batch) utilitário de expressão regular que é executado em qualquer máquina Windows a partir do XP sem a necessidade de qualquer arquivo exe de terceiros.

O seguinte usa ^ continuação de linha para evitar a rolagem, mas pode ser colocado em uma única linha.

jrepl "^(\d+:\d\d:\d\d)\.(\d{3} --> \d+:\d\d:\d\d)\.(\d{3})"^
      "$txt=++n+'\r\n'+$1+','+$2+','+$3" /jq /jbeg "var n=0" /f test.txt /o -

Use CALL JREPL se você colocar o comando dentro de um script em lote.

    
por 24.04.2018 / 13:21