【发布时间】:2013-10-25 08:09:35
【问题描述】:
我有一个 linux 接收器,想重命名录音。录音看起来像
20131018 2245 - Channel 1 - Name of the movie.ts
我只想获得“电影名称.ts”。我可以使用以下 sed- 命令轻松做到这一点:
echo 20131018 2245 - Channel 1 - Name of the movie.ts|sed 's!\(.*\) - \(.*\) - \(.*\)!\3!'
但是:如果电影名称也包含分隔符“ - ”,那么它将在分隔符处将其切断:
echo 20131018 2245 - Channel 1 - Name of another movie - Second part.ts|sed 's!\(.*\) - \(.*\) - \(.*\)!\3!'
将输出:
另一部电影的名称
而不是
另一部电影的名称 - 第二部分.ts
我怎样才能做到这一点?
感谢
【问题讨论】:
-
如果您在正则表达式的开头添加
^,则它不可能引用最后的 3,但最后一个会很贪心并占据其余部分。
标签: regex string shell sed split