如何通过Linux终端的sed命令为文本文件指定行段添加不同前缀以标准化时间戳
用Sed一次性标准化不同行段的时间戳前缀
没问题,用sed就能一次性搞定这三个行范围的前缀添加,完全不需要拆分合并文件,效率拉满!
核心命令(直接输出处理结果)
sed -e '1,128s/^/00:0/' -e '129,713s/^/00:/' -e '714,2285s/^/0/' your_interview_transcript.txt
命令拆解
每个-e选项对应一个行范围的处理规则,清晰又直观:
1,128s/^/00:0/:针对第1到128行,用s/^/00:0/在行首(^表示行的起始位置)插入前缀00:0,刚好把0:32.6转换成00:00:32.6129,713s/^/00:/:针对第129到713行,在行首插入00:,把10:02.6转换成00:10:02.6714,2285s/^/0/:针对第714到2285行,在行首插入0,把1:00:07.0转换成01:00:07.0
直接修改原文件(In-place编辑)
如果想直接修改原文件而不是输出到终端,可以加上-i选项(注意不同系统的小差异):
- Linux环境:
sed -i -e '1,128s/^/00:0/' -e '129,713s/^/00:/' -e '714,2285s/^/0/' your_interview_transcript.txt - macOS环境(需要给
-i加空后缀避免生成备份文件):sed -i '' -e '1,128s/^/00:0/' -e '129,713s/^/00:/' -e '714,2285s/^/0/' your_interview_transcript.txt
效果验证
比如拿几行测试文本:
0:32.6 10:02.6 1:00:07.0
假设它们分别属于三个行范围,执行命令后会变成:
00:00:32.6 00:10:02.6 01:00:07.0
这样就完美实现了你要的标准化效果,全程不用拆分文件,一次命令搞定所有行段的处理~
内容的提问来源于stack exchange,提问作者Kharkovchanka 22
相关产品推荐
相关产品推荐

