2014-11-06 1 views
1

I는 다음과 같다 파일 가지고붕괴 라인 정규식 N의 문자를 <

>chr3:11131258-11134670(-)_3301 
tcctgaagaaatccaaaacaccatcagatccttctacaaaaggctatact 
>chr3:11131258-11134670(-)_3351 
caacaaaactggaaaacctggatgaaatggacaaatttctggacagatac 
>chr3:11131258-11134670(-)_3401 
caggtac 
>chr5:146697252-146699855(+)_1 
taaggaagcagataatccggcctgatccggggctcaagtcccttccggcc 

>은 헤더 라인을 나타내고, 달리 선 길이 문자 시퀀스를 포함 < = 50

어떤 문구가 < 문턱 (N) 인 줄을 찾아 이전 줄 바꿈 줄로 줄이려고합니다. 예를 이렇게하면 다음 파일을 생성한다 :

>chr3:11131258-11134670(-)_3301 
tcctgaagaaatccaaaacaccatcagatccttctacaaaaggctatact 
>chr3:11131258-11134670(-)_3351 
caacaaaactggaaaacctggatgaaatggacaaatttctggacagataccaggtac 
>chr5:146697252-146699855(+)_1 
taaggaagcagataatccggcctgatccggggctcaagtcccttccggcc 

내가 정규식이 일을 시도하고, 그러나 많은 행운을 가지고 있지 않다. 나는 다양한 기술에 개방적이지만 커맨드 라인에서 수행 할 수 있다면 플러스입니다. (각 파일에는 1 백만 개 이상의 행을 포함하는 여러 파일이 있습니다.)

답변

1

multiline 옵션을 사용하여이 정규 표현식을 사용하면 ^$ 앵커가 각 줄의 시작과 끝과 일치합니다.

그런 다음 일치하는 그룹이 경기의 헤더 행과 두 번째 줄을 대표로 교체 : $1 $2

여기 regex101

+0

와우의 데모입니다! 고마워, 나는 그 근처에 있었지만 내 것은 너무 복잡했다. 나는 줄 바꿈과 줄 바꿈이 제거되도록 몇 가지 수정을했다 :'[\ r \ n] +^(>. * [\ r \ n] +) (\ w {0,40}) $' – Josh