首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >srt文件中的Bash,shift秒

srt文件中的Bash,shift秒
EN

Stack Overflow用户
提问于 2013-10-18 01:02:41
回答 1查看 461关注 0票数 0

也许有人能帮我。在狂欢中,我不知道该怎么做。我需要写一个bash-script。在标准输入中,我有这样格式的字幕.srt文件:

代码语言:javascript
复制
num
HH:MM:SS,SSS --> HH:MM:SS,SSS
text line 1
text line 2
...

HH:MM:SS,SSS文本标题的开始和结束。

脚本必须移位秒数。(它可以是+或-)

示例:

代码语言:javascript
复制
$cat bmt.srt
5
00:01:02,323 --> 00:01:05,572
Hello, my frieds!
6
....

$./shifter.sh +3<mbt.srt
5
00:01:05,323 --> 00:01:08,572
Hello, my frieds!
6

我想,我需要抓取所有的HH:MM:SS,并首先将它们转换为秒。如果有人能在没有sed的情况下做到这一点,我会鼓掌的。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-10-18 01:24:23

您的shifter.sh:

代码语言:javascript
复制
#!/bin/sh
export DELTA=$1
perl -pe '
    BEGIN {
        sub to_secs {
            my ($h,$m,$s) = split(/:/, shift);
            $h*3600 + $m*60 + $s;
        }
        sub to_str {
            my $secs = shift;
            my $s = $secs % 60;
            my $h = int($secs / 3600);
            my $m = int(($secs - $h*3600) / 60);
            sprintf("%d:%02d:%02d", $h, $m, $s);
        }
    }
    s/(\d+:\d\d:\d\d)/ to_str(to_secs($1) + $ENV{DELTA}) /ge;
'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19432936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档