중복 기록 찾기 및 삭제 [닫기]

중복 기록 찾기 및 삭제 [닫기]

동일한 문자가 반복되는 중복 레코드를 찾고 싶습니다. 예를 들어 찾고 싶은 패턴이 "AA" 또는 "AAAAA"입니다. grep 명령을 사용하여 찾으려고 합니다. 하지만 여기서는 제대로 작동하지 않습니다. ATCTAGCGATCGATAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAG TATCTATCTATCTATCTCATACTTCGCATCGCTAGCTCGACTGCATAGGACTAGCATAAAAAGCATCAGCTACCGCCTCAGCATCGACTACGATACG TAGTCGATCGACAGCTACGCATGCATCCG 행위 ACTAGCTAGCGCTAGACTACGTACCGATAAGCACTACGTCAGCCTAGACTCACGACT GATCGATCGATCGACTACGCAGCTACGAGATCGATCGATCGATCGTAGCTAGCTCATACTACACACGCATATACGTGTCGATgctAGTAACTACAT ACGCTAGCTAGCTACGATCAATCGAGCTATCGATCAGCTACGATCTAGAGATCGATCGATGCATCTGATAGCTACGATCagcactgatGCCGC TG AT

답변1

질문이 조금 불분명합니다. 동일한 핵산으로 구성된 모든 하위 문자열을 두 번 이상 찾고 싶다고 가정하면 sed가 도움이 될 수 있습니다.

sed -r 's:([ACGTacgt])\1+:\n>&\n:g;s:^[^>]+$::mg;s:\n+>?:\n:g' INPUT

산출:

TT
GG
AAAAA
CC
CC
CC
CC
AA
CC
AA
AA

특정 핵산의 경우 [Aa]스크립트 시작 부분에 사용하세요.

관련 정보