何百万ものDNA配列を含む大容量の.fnaファイルがあります。プライマーを切断した後、いくつかの書き込みエラーのためにいくつかのシーケンスヘッダーが残り、その後にシーケンスがありません。以下に例を示します。ワークフロースクリプトを引き続き使用できるように、これらのヘッダーと空白行を削除する必要があります。
B2S312_20116609 HWI-ST1128:217:D2HB4ACXX:8:1101:20814:45721 orig_bc=CCGCATAA new_bc=CCGCATAA bc_diffs=0
AACCATGCACCACCTGTATCTGTGTCTAACCAAAGGTCAGAACAACACAATCTCTTGTGTCCTCACAGTATGTCAAGACTT
B4S315_20116610 HWI-ST1128:217:D2HB4ACXX:8:1101:20948:45746 orig_bc=ATATGCCG new_bc=ATATGCCG bc_diffs=0
AACCATGCACCACCTGCACACGACCAACTAAATGCCACCACATCTCTGCAGTGTCGCCGTGCATGTCAAGCCTT
A3C214_20116611 HWI-ST1128:217:D2HB4ACXX:8:1101:20874:45747 orig_bc=GATCCAAC new_bc=GATCCAAC bc_diffs=0
A2C214_20116612 HWI-ST1128:217:D2HB4ACXX:8:1101:21248:45534 orig_bc=CCTAGGAT new_bc=CCTAGGAT bc_diffs=0
AACCGTGCACCACCTGTTTTCTGGCTTCCGAAGAAGAGGAACTATCTCTAGTTCTGTCCATCAATGTCAAGACCT
A3C214_20116611 HWI-ST1128:217:D2HB4ACXX:8:1101:20874:45747 orig_bc=GATCCAAC new_bc=GATCCAAC bc_diffs=0
したがって、この例では、その行とその下の空の行を削除したいと思います。
sedだけを使用して空の行を削除しましたが、私のシナリオに適した例が見つかりませんでした。
ベストアンサー1
sed '$!N;/:.*\n$/d;P;D' <infile
上記のコマンドは、N
最後の行ではなくすべての行から追加の行を取得します。コロンが見つかり、最後の文字が改行されたパターン空間を見つけた場合、バッチは削除されます。つまり、コロンを含む行と次の行が空の場合、両方が削除されます。他のすべての場合は、パターンスペースに最初に表示されるewlineまで印刷し、残りの部分から始める前に同じ内容を削除します。これにより、ファイル全体で1行のプレビューを実行できます。!
$
:
\n
P
\n
D