grep 검색 사이의 문자 수 계산

grep 검색 사이의 문자 수 계산

grep 명령을 일련의 다른 명령과 함께 사용하여 일련의 문자(예: fasta 파일의 "GAATTC")를 찾고 각 일치 항목 사이에 몇 개의 문자가 있는지 계산할 수 있는 방법이 있습니까?

답변1

입력 파일

cat file
GAATTCXXXGAATTC

쉘 사용(GNU grep):

grep -oP 'GAATTC\K.*(?=GAATTC)' file | tr -d $'\n' | wc -c
3

정규식 일치는 다음과 같습니다.

마디 설명하다
GAATTC 'GAATTC'
\K KLookbehind 어설션을 사용하여 더 짧은 대안으로 일치 시작(ept)을 재설정합니다 .주위를 둘러보세요그리고정규식에서 \K 지원
.* \n을 제외한 모든 문자(0회 이상(최대한 많이 일치))
(?= 시야다음이 있는지 확인하세요.
GAATTC 'GAATTC'
) 미리보기 끝

그리고:

awk -F'GAATTC' '{print length($2)}' file
3

그리고:

perl -nE 'say length $1 if /GAATTC(.*)GAATTC/' file
3

관련 정보