2016-11-18 2 views
0

가끔 줄 바꿈이있는 파일이 있습니다.sed : 네 번째 줄에 따라 줄을 연결하십시오.

분할은 알파벳 문자가있는 두 개의 연속적인 줄로 표시됩니다.

 

5 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters 
Alphabetic characters 

6 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters 

7 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters 
Alphabetic characters 

8 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters 

..... 

나는 다시 분할 선에 가입 싶습니다

 

5 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters Alphabetic characters 

6 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters 

7 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters Alphabetic characters 

8 

> 00:00:00,000 --> 00:00:00,000 

Alphabetic characters Alphabetic characters 
..... 

을 나오지도 사용. 선행 방법과 라인을 결합하는 방법이 명확하지 않습니다. 제안 사항이 있으십니까? 첫 번째 라인은 알파벳 문자 나 공간과 같은 상기 제 2 개시로 시작한다는 조건을 충족 백투백

+0

SRT 파일 인 경우 예제와 달리 마지막 텍스트 줄 (자막 색인 앞) 다음에 빈 줄이 있습니다. –

+0

올바른 .SRT 파일의 실제 형식을 반영하지 않기 때문에 질문을 편집 할 수 있습니다. 따라서 귀하의 예를 기반으로 한 솔루션은 만족스럽지 않을 것입니다. –

+0

접두사 행에는 4 개의 공백이 있습니다. [editing-help] (http://stackoverflow.com/editing-help)를보십시오. – Cyrus

답변

1

sed는 개별 행에 대한 간단한 하위 항목입니다.

$ awk '/[[:alpha:]]/{ if (buf=="") {buf=$0; next} else {$0=buf OFS $0; buf=""} } 1' file 

5 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters Alphabetic characters 

6 

00:00:00,000 --> 00:00:00,000 


7 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters Alphabetic characters 

8 

00:00:00,000 --> 00:00:00,000 

Alphabetic characters Alphabetic characters 

..... 

은 위의 모든 POSIX 호환 AWKS 모든 UNIX 시스템에 견고하게, 이식성, 그리고 효율적으로 작동합니다 아무것도 들어 당신은 AWK를 사용한다.

+0

고마워, 잘 작동 해. 부정 연산자가 가능합니까? 이 같은 -> "같지 않음 [: digit :]" – Marcelo

+0

그게 무슨 뜻 이냐에 따라 다르다; s!/[[: digit :]] /'또는'/ [^ [: digit :]] /' . –

1
sed '$!{N;/^[a-zA-Z ][^\n]\+\n[a-zA-Z ]/{s/\n/ /}}' 

대전 두 줄. 그들과 함께 우주에 합류하십시오. 나오지와

+0

고마워, 잘 작동 해. – Marcelo

1

또 다른 방법 :

알파벳 문자로 시작하는 라인이 발견
sed '/^[[:alpha:]]/{N;/\n[[:alpha:]]/s/\n/ /}' file 

N 명령을 사용하여 패턴 영역에 다음 줄을 추가합니다. 그 다음에 공백이있는 영문자가 올 때 개행 문자를 대체하십시오.

+0

환상적 - 많은 감사합니다. 나를 위해 정말 잘 작동합니다. – Marcelo

관련 문제