Text-Processing
如何刪除文件中每次出現的“>”和“細菌”一詞之間的部分?
我想刪除文件中每次出現的the
>
和 word之間的部分。Bacteria
- 這是輸入的範例:
>AADV02000003.105686.107093 Bacteria;Cyanobacteria;Cyanobacteriia;Cyanobacteriales;
- 結果應如下所示:
>Bacteria;Cyanobacteria;Cyanobacteriia;Cyanobacteriales;
這是一個 FASTA 文件(仿生資訊學中的一種常見文件格式),因此
>
始終是該行中的第一個非空白字元,並且該行中只有一個這樣的字元。我正在考慮使用
sed
,但我不確定如何設置命令。感謝您的幫助。
假設這是一個 fasta 文件,具有多個標題和序列行,其中標題以 a 開頭,
>
並且>
只能作為行的第一個非空白字元出現,您可以執行以下操作:sed 's/^ *>[^ ]* />/' file.fa
這將查找以 0 個或多個空格開頭然後是 a
>
的行,並將從行的開頭、到>
和直到第一個空格的所有內容替換為>
,有效地刪除第一個空格之前的所有內容。要編輯原始文件而不是將其列印到標準輸出,請使用:
sed -i.bak 's/^ *>[^ ]* />/' file.fa
這將創建一個名為的文件,該文件
file.fa.bak
將是原始文件的副本。