例: タイムスタンプをすべてマイナス 1 にする方法、ありがとう :)
srt テキスト ファイルの一部:
1
00:00:04,110 --> 00:00:08,409
hi my name's mike
......
そして私はそれをさせたい:
1
00:00:03,110 --> 00:00:07,409
hi my name's mike
......
vim の正規表現を使用して、必要なものを取得できます。
:%s;\(\d\{2}\)\(,\d\{3}\);\=printf("%02d%s", submatch(1) - 1, submatch(2));g
: - begin command line mode.
% - entire file.
s - substitute.
; - field separator.
\( - begin sub-expression.
\d - match digit.
\{2) - match exactly two.
\) - end sub-expression.
, - actual comma.
\{3) - match exactly three.
printf() - internal vim function (see :h printf).
submatch(1) - match first sub-expression.
submatch(2) - match second sub-expression.
g - replace all occurrences in the line.