Observera att jag inte har tillgång till någon sed-kapabel miljö så jag kan inte testa - har säker skrivit nått tecken fel
Har du blanksteg efter sista siffrorna på raden? (Antar att det är slut på raden där)
Vet inte hur hård matchning du behöver (hur mycket annat som kan matchas), men jag skulle nog sikta på något liknande:
Exempel 1 fixar du med:
sed fil.srt 's/\(..:..:..,..\) /\10 /' | sed 's/\(..:..:..,..\)$/\10/' > tmp.srt
Första sed-satsen fixar felet till vänster om pilen och den andra det som är sist på raden (saknar blanksteg efter) - Gillar att dela upp det så man kan köra more och kolla att respektive steg funkar
Om du även skall täcka in att sista värdet saknas helt (Exempel 2):
sed tmp.srt 's/\(..:..:..\) /\1,000 /' | sed 's/\(..:..:..\)$/\1,000/' > fixad_fil.srt
Kommer inte ihåg om semikolon eller komma är skyddade tecken i sed ... i så fall gör man bara backslash före eftersom jag vill matcha mot det faktiska tecknet ...
*EDIT*
SED är lite som VI ... rätt lowtech men är ibland rätt najs att ha om det inte finns sånna där färglådor eller hightech verktyg
AWK är lite gränsfall