У меня есть набор файлов выравнивания, которые выглядят следующим образом:
>X2JE30_DROME/180-423|W6URD5_ECHGR/38-170
.........AEGYPVDLYYLMDLSKSM...E..DDKAK..LST....LG.D......K....L......
>X2JE30_DROME/180-410|X1WIK5_DROME/68-211
......AEGYPVDLYYLMDLSKSM...E..DDKAK..LST....LG.D......K....L.........
>X2dhs0_ECHGR/183-490|X1WIK5_ECHGR/68-211
.......AEGYPVDLYYLMDLSKSM...E..DDKAK..LST....LG.D......K....L........
Как получить следующий вывод, где последовательность будет печататься, только если есть совпадение между двумя строками между _ и /:
Желаемый вывод
>X2JE30_DROME/180-410|X1WIK5_DROME/68-211
......AEGYPVDLYYLMDLSKSM...E..DDKAK..LST....LG.D......K....L.........
>X2dhs0_ECHGR/183-490|X1WIK5_ECHGR/68-211
.......AEGYPVDLYYLMDLSKSM...E..DDKAK..LST....LG.D......K....L........
Я попробовал следующий код:
awk '
match($0,/_=[A-Z]+/){
val=substr($0,RSTART,RLENGTH)
if(gsub(val,"&")==2){
print
found=1
}
val=""
next
}
found{
found=""
print
}
' test.fasta
Код возвращается без значения.