Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在连字符前打断字幕_Bash - Fatal编程技术网

Bash 在连字符前打断字幕

Bash 在连字符前打断字幕,bash,Bash,我有一个字幕文件。我想用连字符打断所有的字幕。之后我只想要两行字幕。例如: 发件人: 致: 我试过: cat source.srt | sed 's/ - /\n\0/g' > target.srt 将所有“-”替换为“-\n” 然而,这将把“我工作很多。”放在第三行。您可以使用gnu-sed: sed -i.bak 's/ - /\n- /' file 你的sed命令是错误的。尝试: sed -i "s/ - /\n- /g" filename.srt 在您的示例中,您进行了另一次

我有一个字幕文件。我想用连字符打断所有的字幕。之后我只想要两行字幕。例如:

发件人:

致:

我试过:

cat source.srt | sed 's/ - /\n\0/g' > target.srt
将所有“-”替换为“-\n” 然而,这将把“我工作很多。”放在第三行。

您可以使用gnu-sed:

sed -i.bak 's/ - /\n- /' file

你的sed命令是错误的。尝试:

sed -i "s/ - /\n- /g" filename.srt

在您的示例中,您进行了另一次编辑,您在问题中没有说明这一点。此命令只执行您要求的操作。

此代码有效:cat source.srt | sed的/-/\n-/g'>target.txt。但是“我工作很多”在第三行。我该如何解决这个问题?问题是
我工作很多。
已经在另一行了。除非你用什么样的逻辑来阐明我们应该这样做,否则删除新行并将其放到前一行很容易出错。第一个人说:“你好吗?”。第二个人说:“我很好,我工作很多。”。我想把一个人说的话放在一行上。每个连字符代表一个人。这是我的问题。事实上,如果你用这个新的要求创建一个新的问题来获得更多的答案会更好。我也会努力从我的角度来解决这个问题。
sed -i.bak 's/ - /\n- /' file
sed -i "s/ - /\n- /g" filename.srt