使用流编辑器 (sed) 删除换行符

使用流编辑器 (sed) 删除换行符

我需要编写一个 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

$ 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

相关内容