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
매우 긴 줄을 찾을 수 있도록 "줄 길이 제한 없음"과 같은 것을 지정하는 방법이 있습니까 ?