ファイル内のすべての項目と単語>
の間の部分を削除したいと思います。Bacteria
- 以下は入力の例です。
>AADV02000003.105686.107093 Bacteria;Cyanobacteria;Cyanobacteriia;Cyanobacteriales;
- 結果は次のようになります。
>Bacteria;Cyanobacteria;Cyanobacteriia;Cyanobacteriales;
これはFASTAファイル(生物情報学の一般的なファイル形式)なので、>
常に行の最初の非空白文字があります一つこんなキャラクターになります。
使用を検討していますが、sed
コマンドの設定方法がわかりません。ご協力ありがとうございます。
ベストアンサー1
ヘッダーがaで始まり、行の空白ではなく最初の文字としてのみ表示される複数のヘッダーとシーケンス行を含むfastaファイルであると仮定すると、>
次の>
ことができます。
sed 's/^ *>[^ ]* />/' file.fa
これにより、ゼロ個以上のスペースで始まり、その後にaと行が続く行を見つけ、行の先頭>
から>
最初のスペースまですべてを置き換えて、>
最初のスペースの前のすべてを効果的に削除します。
標準出力として印刷するのではなく、元のファイルを編集するには、次のようにします。
sed -i.bak 's/^ *>[^ ]* />/' file.fa
file.fa.bak
これにより、元のファイルのコピーになるというファイルが作成されます。