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.
각 블록에는 한 줄 또는 두 줄의 자막이 있을 수 있습니다.
또는 포함으로 시작하는 sed
줄을 무시하고 새 줄을 제거하려고 시도했지만 방법을 찾지 못했습니다.00:
-->
나는 bash 스크립트를 작성하여 파일을 한 줄씩 읽고 적절한 조치를 취할 수 있다고 생각하지만 sed
단 한 줄로도 가능하다고 확신합니다.
답변1
sed '/^$\|-->/!{
N
/\n$/!s/\n/ /
}' file
/^$\|-->/!
행이 비어 있지도 않고 포함되어 있지도 않은 경우-->
;N
패턴 공간에 다음 줄을 추가합니다./\n$/!s/\n/ /
추가된 줄이 비어 있지 않으면 줄 바꿈이 공백으로 대체됩니다.
입력 예(OP에서 표시할 수 있다고 언급한 대로 두 번째 블록에 한 줄 자막이 포함되어 있음):
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:/
.