(非常に)長い行をナビゲートすると、「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非常に長い行を見つけるために「行の長さ制限なし」のようなものを指定する方法はありますか?

関連情報