grep 명령을 일련의 다른 명령과 함께 사용하여 일련의 문자(예: fasta 파일의 "GAATTC")를 찾고 각 일치 항목 사이에 몇 개의 문자가 있는지 계산할 수 있는 방법이 있습니까?
답변1
입력 파일
cat file
GAATTCXXXGAATTC
쉘 사용(GNU grep
):
grep -oP 'GAATTC\K.*(?=GAATTC)' file | tr -d $'\n' | wc -c
3
정규식 일치는 다음과 같습니다.
마디 | 설명하다 |
---|---|
GAATTC |
'GAATTC' |
\K |
K Lookbehind 어설션을 사용하여 더 짧은 대안으로 일치 시작(ept)을 재설정합니다 .주위를 둘러보세요그리고정규식에서 \K 지원 |
.* |
\n을 제외한 모든 문자(0회 이상(최대한 많이 일치)) |
(?= |
시야다음이 있는지 확인하세요. |
GAATTC |
'GAATTC' |
) |
미리보기 끝 |
그리고앗:
awk -F'GAATTC' '{print length($2)}' file
3
그리고진주:
perl -nE 'say length $1 if /GAATTC(.*)GAATTC/' file
3