두 단어 사이에 일정한 무작위 문자가 있는 두 단어를 일치시킵니다.

두 단어 사이에 일정한 무작위 문자가 있는 두 단어를 일치시킵니다.

특정 길이(내 경우에는 6)의 중간에 임의의 순서로 각 줄에서 두 개의 패턴(단어)을 추출할 수 있는 grep 명령을 검색하려고 합니다.

ATCAACGCAGAGTACATXXXXXXGGG

내 예에는 "ATCAACGCAGAGTACAT"와 "GGG"라는 두 단어가 있고 그 사이에 "XXXXXX"라는 6개의 문자가 있지만 어떤 문자라도 가능합니다.

기존 솔루션을 살펴봤지만 이에 대한 특별한 솔루션은 없다고 생각합니다.

입력하다

ACGCAACGACGACG**ATCAACGCAGAGTACAT****XXXXXX****GGG**AATTTA
AGGGAACGTTGCCG**ATCAACGCAGAGTACAT****XXXXXX****GGG**CATGGA
GGAACGTTGCCAAG**ATCAACGCAGAGTACAT****XXXXXXXXX****GGG**ATG  (this does not match for example)  
AGGGAACGTTGCCG**ATCAACGCAGAGTACAT****XXXXXX****GGG**CATGGA

산출

ACGCAACGACGACG**ATCAACGCAGAGTACAT****XXXXXX****GGG**AATTTA
AGGGAACGTTGCCG**ATCAACGCAGAGTACAT****XXXXXX****GGG**CATGGA
AGGGAACGTTGCCG**ATCAACGCAGAGTACAT****XXXXXX****GGG**CATGGA

그 중 "XXXXXX"는 AATCGA, AAATCC 등 A, C, T, G의 임의 조합이 될 수 있습니다.

grep또는 을 사용하여 이 작업을 어떻게 수행할 수 있습니까 sed?

답변1

노력하다

grep "ATCAACGCAGAGTACAT[ACGT]\{6\}GGG" file

관련 정보