#regex
#регулярное выражение
Вопрос:
Я хочу извлечь время начала и окончания и текст субтитров из заданного файла субтитров. Какой лучший способ сделать это? Файл субтитров выглядит следующим образом:
1
00:00:14,680 --> 00:00:23,960
on
2
00:00:24,480 --> 00:00:30,000
VERT
3
00:00:30,080 --> 00:00:38,120
UD
4
00:00:38,120 --> 00:00:39,040
REST
Я хочу следующее:
00:00:14.680 , 00:00:23.960, on
00:00:24.480 , 00:00:30.000, VERT
00:00:30.080 , 00:00:38.120, UD
00:00:38.120 , 00:00:39.040, REST
После некоторого поиска в Google я могу извлечь регулярное выражение в режиме онлайн следующим образом, как показано на рисунке. Как мне поместить извлеченный текст в файл (и заменить ,
на .
?
(d.{11})s-->s(d.{11})[rn](w )
Обновление: получил то, что я хочу, следующим образом. Есть ли какой-либо способ добавить, чтобы заменить, with .?
gawk 'match($0, /([0-9].{11})s-->s([0-9].{11})/, a) {getline; print a[1], "t", a[2],"t", $0}'
Ответ №1:
Это работает с использованием grep и perl:
$ cat text.txt | egrep -v '^[0-9]*
egrep
удаляет пустые строки и только цифры
- несколько
perl
поисков и замен исправляют запятые на точки, исправляют -->
стрелку на запятую и соединяют буксирные строки запятой
Комментарии:
1. Не знаю, почему он добавляется
1,
в первую строку с реальным.srt
файлом. Но ничего страшного, все остальное извлекается нормально.2. Не уверен, почему. Я протестировал ваш пример ввода текста, и он работает правильно в моей системе
| perl -pe 's/(:d{2}),(d)/$1.$2/g; s/ *--> */, /; s/(d)n/$1, /g;'
00:00:14.680, 00:00:23.960, on
00:00:24.480, 00:00:30.000, VERT
00:00:30.080, 00:00:38.120, UD
00:00:38.120, 00:00:39.040, REST
egrep
удаляет пустые строки и только цифры- несколько
perl
поисков и замен исправляют запятые на точки, исправляют-->
стрелку на запятую и соединяют буксирные строки запятой
Комментарии:
1. Не знаю, почему он добавляется
1,
в первую строку с реальным.srt
файлом. Но ничего страшного, все остальное извлекается нормально.2. Не уверен, почему. Я протестировал ваш пример ввода текста, и он работает правильно в моей системе