大きなファイルを処理する必要があり、sed、sort などを使用するときに複数のコア プロセッサを使用しようとする並列コマンドについて読んでいます。そのため、最初に 4 行ごとに最初の行を変更したいと考えました (この種のファイルの命名規則 - FastQ 形式のため)。
たとえば、これは 4 つのグループで、最初の行を変更したいと思います。
cat sbcc073_pcm_ill_all.musket_default.fastq | head -4
@HWUSI-EAS1752R:29:FC64CL3AAXX:8:65:16525:4289_1:N:0:ACTTGA
GCGAGAGAATGGATGAGTTGATAGTTACACAGCGGTTTTGATATACTGATGCCTTGTATATGTTCGT
+
GHHHHHHHHHHGGEEGEDGGGGH=HHHHHEGDBFF8BED=BAEEEAHHHBD>GGGEEHHHFE>GG@E
次のコマンドで、作業を完了しました。
cat sbcc073_pcm_ill_all.musket_default.fastq | head -4 | sed 's#^\(@.*\)_\([12]\).*#\1/\2#'
@HWUSI-EAS1752R:29:FC64CL3AAXX:8:65:16525:4289/1
GCGAGAGAATGGATGAGTTGATAGTTACACAGCGGTTTTGATATACTGATGCCTTGTATATGTTCGT
+
GHHHHHHHHHHGGEEGEDGGGGH=HHHHHEGDBFF8BED=BAEEEAHHHBD>GGGEEHHHFE>GG@E
ただし、 parallel を使用すると、グループ キャプチャ ブラケットが認識されないようです。
cat sbcc073_pcm_ill_all.musket_default.fastq | head -4 | parallel --pipe sed 's#^\(@.*\)_\([12]\).*#\1/\2#'
@HWUSI-EAS1752R:29:FC64CL3AAXX:8:65:16525:4289_1:N:0:ACTTGA
GCGAGAGAATGGATGAGTTGATAGTTACACAGCGGTTTTGATATACTGATGCCTTGTATATGTTCGT
+
GHHHHHHHHHHGGEEGEDGGGGH=HHHHHEGDBFF8BED=BAEEEAHHHBD>GGGEEHHHFE>GG@E
バックスラッシュを削除するか、 sed -r を使用すると、コマンドは次のように伝えます。
/bin/bash: -c: line 3: syntax error near unexpected token `('
/bin/bash: -c: line 3: ` (cat /tmp/60xrxvCIRX.chr; rm /tmp/60xrxvCIRX.chr; cat - ) | (sed s#^(@.*)_([12]).*#\1/\2# );'
誰かがこれに光を当てることができますか?
どうもありがとうございます