(매우) 긴 줄을 탐색할 때 "PCRE의 줄 길이 제한이 초과되었습니다" 발생

(매우) 긴 줄을 탐색할 때 "PCRE의 줄 길이 제한이 초과되었습니다" 발생

reads.fq.gz아래에 다음과 같은 이름의 샘플 파일이 있습니다 .

@read1 bla bla sample_id=PD170815
ACTGCGACCCAAACCTTGCACATTGGAC
+
%*&3&&&$$&%$%&3
@read2 bla bla sample_id=PD170815
ACTTTGACCCCAAATCGTGGAC
+
&3&&&%#%^%$%$#%$@#$@#
@read3 bla bla sample_id=PD170815
ATTTGACCCAAATGACCCAGT
+
$%^&()^$#@..;:":
@read4 bla bla sample_id=PD170815
TTGGAACGTGACGATGACCAGT
$%^&*&*^$$$#$#$#$

@read이 파일에서 더하기 기호와+

.txt내가 grep하고 싶은 것을 지정하는 또 다른 파일이 있습니다 reads.fq.gz. 예를 들어, read1여기 에서 정보를 얻으려면 다음과 같은 파일이 read4있어야 합니다 .list.txt

read1
read4

만약 내가한다면:

while read p; do zcat reads.fq.gz | grep -Pzo "\@$p(.)*\n[A-Za-z]*\n\+\n"; done < list.txt

나는 내가 원하는 것을 얻었습니다:

@read1 bla bla sample_id=PD170815
ACTGCGACCCAAACCTTGCACATTGGAC
+
@read4 bla bla sample_id=PD170815
TTGGAACGTGACGATGACCAGT
+

이것은 샘플 파일이지만. 내가 grep하려는 파일은 크기가 크고(23Gb) @read더하기 기호 사이의 줄이 +상당히 길 수 있습니다. 따라서 원본 파일에 대해 동일한 명령을 실행하면 다음과 같은 결과가 나타납니다.

grep: exceeded PCRE's line length limit

의 각 항목에 대해 list.txt.

grep매우 긴 줄을 찾을 수 있도록 "줄 길이 제한 없음"과 같은 것을 지정하는 방법이 있습니까 ?

관련 정보