首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提取由模式和后面行中的文本分隔的时间码。

提取由模式和后面行中的文本分隔的时间码。
EN

Stack Overflow用户
提问于 2020-12-09 04:12:32
回答 1查看 45关注 0票数 0

我想从一个设置的字幕文件中提取开始时间、结束时间和字幕文本。有什么更好的方法来做到这一点呢?字幕文件如下:

代码语言:javascript
复制
1
00:00:14,680 --> 00:00:23,960
on

2
00:00:24,480 --> 00:00:30,000
VERT

3
00:00:30,080 --> 00:00:38,120
UD

4
00:00:38,120 --> 00:00:39,040
REST

我想要以下几点:

代码语言:javascript
复制
00:00:14.680 , 00:00:23.960, on
00:00:24.480 , 00:00:30.000, VERT
00:00:30.080 , 00:00:38.120, UD
00:00:38.120 , 00:00:39.040, REST

在googling搜索之后,我可以使用以下内容在在线regex上提取,如图所示。如何将提取的文本放入文件(并将,替换为. )

代码语言:javascript
复制
(\d.{11})\s-->\s(\d.{11})[\r\n](\w+)

更新:从下面得到了我想要的东西。是否有任何方法可以将,\替换为。?

代码语言:javascript
复制
gawk 'match($0, /([0-9].{11})\s-->\s([0-9].{11})/, a) {getline; print a[1], "\t", a[2],"\t", $0}' 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-09 04:34:14

这使用grep和perl进行工作:

代码语言:javascript
复制
$ cat text.txt | egrep -v '^[0-9]*$'| perl -pe 's/(:\d{2}),(\d)/$1.$2/g; s/ *--> */, /; s/(\d)\n/$1, /g;'
00:00:14.680, 00:00:23.960, on
00:00:24.480, 00:00:30.000, VERT
00:00:30.080, 00:00:38.120, UD
00:00:38.120, 00:00:39.040, REST

  • egrep移除空行和数字行
  • comma perl搜索&将逗号替换为点,将-->箭头固定为逗号,并将两行与逗号

连接起来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65210530

复制
相关文章

相似问题

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