Мне нужно написать сценарий sed, который помещает фактический текст субтитров в файл srt в одну строку.

Если этот текст изначально был разбит на несколько строк, разрыв строки и возможные пробелы должны быть заменены одним пробелом.

вход

00:00:12,800 --> 00:00:16,300
I think uh, vice-president of consumer products
or something like that

Выход

00:00:12,800 --> 00:00:16,300
I think uh, vice-president of consumer products or something like that

Я уже получил это

N
s/\([a-z]*,*\)\\n/ /g 

но это не сработало. Кто-нибудь может мне помочь?

1 ответ1

0
$ sed -n '/-->/{1!{x;s/\n/ /g;p;x};p;n;h;d};H;${x;s/\n/ /g;p}' input.txt

Я не буду делать домашнее задание для тебя. Вы должны прочитать больше, чтобы интерпретировать это.


Кстати, решение awk намного проще:

$ awk '/-->/{if(NR!=1)print "";print;next}; {printf "%s",$0}' input.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .