私は問題を総合的にうまく説明することができなかったような混乱した考えを持っているので、タイトルは恐ろしいです。あなたがそれにいる間、私にももっと良いものを提案してください。
基本的に、同じ行数の2つのSubRip(.srt)字幕があります。それらは異なる言語であり、私はそれらを同期する必要があります。
一方を他方にポイント同期しても、十分な結果は得られません。これは、2番目の同期には明らかにタイミングの悪いラインがあるためです。私がやりたいのは、タイムスタンプを最初から2番目にコピーすることです。
一部の行に改行がある場合、タイミングは固定パターンでリズムが調整されません。タイミングの線を引くには、開始時間から終了時間に向かう矢印を探す必要があります。
1.srt
1
00:00:01,336 --> 00:00:03,437
Foo
2
00:00:03,440 --> 00:00:05,093
Bar
Baz
3
00:00:05,096 --> 00:00:07,330
Qux
2.srt
1
00:00:01,336 --> 00:00:03,935
Quux
2
00:00:03,936 --> 00:00:05,201
Garply
Waldo
3
00:00:05,803 --> 00:00:07,467
Fred
more 1.srt | grep -- "-->"
00:00:01,336 --> 00:00:03,437
00:00:03,440 --> 00:00:05,093
00:00:05,096 --> 00:00:07,330
more 2.srt | grep -- "-->"
00:00:01,336 --> 00:00:03,935
00:00:03,936 --> 00:00:05,201
00:00:05,803 --> 00:00:07,467
1.srt
のタイムスタンプを含む行を対応する2.srt
の行に置き換えるにはどうすればよいですか?
ファイルにわかりやすい名前を付けましょう:good-text
およびgood-times
。
タイムスタンプ付きの行をgood-times
から分離します。
grep -- '-->' good-times > the-ringer
awk
で間違ったタイムスタンプを置き換えましょう:
< good-text awk '
{ if ($2 == "-->") getline < "the-ringer"
print }
' > good-all
awk
が2番目のフィールドが-->
である行に遭遇するたびに、それはthe-ringer
からの行に置き換えられます。
取り除く ウォルターの汚い下着 ゴミ:rm the-ringer
。
good-all
を調べてください。必要なものが含まれている必要があります。手順全体はawk
だけで実行できますが、私は [〜#〜] kiss [〜#〜] に決めました。