00:
このようなvttファイル(字幕)があり、行および/または空の行で始まらない行でのみ、新しい行を空白に置き換えたいと思います。
だからこれ:
00:07:44,759 --> 00:07:49,072
Quando comincio a lavorare?
Subito.
00:07:49,199 --> 00:07:53,512
Prendi quella poltrona e portala
in laboratorio. Quella?
00:07:53,639 --> 00:07:58,839
Fai aftene'ione, mi raccomando.
lo vado in Comune. Arrivederci.
00:07:58,959 --> 00:08:01,952
Arrivederci.
Fate i bravi ragae'e'i.
次にリダイレクトされます。
00:07:44,759 --> 00:07:49,072
Quando comincio a lavorare? Subito.
00:07:49,199 --> 00:07:53,512
Prendi quella poltrona e portala in laboratorio. Quella?
00:07:53,639 --> 00:07:58,839
Fai aftene'ione, mi raccomando. lo vado in Comune. Arrivederci.
00:07:58,959 --> 00:08:01,952
Arrivederci. Fate i bravi ragae'e'i.
各ブロックには1行または2行の字幕があります。
または、インクルードで始まるsed
行を無視して新しい行を削除しようとしましたが、方法が見つかりませんでした。00:
-->
私はbashスクリプトを書いてファイルを1行ずつ読み、適切なアクションを取ることができると思いますが、1行でも可能であると確信していますsed
。
ベストアンサー1
sed '/^$\|-->/!{
N
/\n$/!s/\n/ /
}' file
/^$\|-->/!
行が空でも含まれていない場合-->
。N
パターン空間に次の行を追加します。/\n$/!s/\n/ /
追加された行が空でない場合、改行は空白に置き換えられます。
入力例(OPで表示できると述べたように、2番目のブロックに1行の字幕が含まれています):
00:07:49,199 --> 00:07:53,512
Prendi quella poltrona e portala
in laboratorio. Quella?
00:07:58,959 --> 00:08:01,952
Arrivederci.
00:07:58,959 --> 00:08:01,952
Arrivederci.
ABC.
出力:
00:07:49,199 --> 00:07:53,512
Prendi quella poltrona e portala in laboratorio. Quella?
00:07:58,959 --> 00:08:01,952
Arrivederci.
00:07:58,959 --> 00:08:01,952
Arrivederci. ABC.
注:@binarystaがコメントしたように、-->
これは動画が1時間以上の場合はタイトルを検出するよりも安定しています。00:
本当にしたい場合は、00:
最初の正規表現をに変更できます/^$\|^00:/
。