GNU sedを使用して文字列間にアンダースコアを追加する

GNU sedを使用して文字列間にアンダースコアを追加する

GNU sedここで初心者...

次の形式のヘッダーを含む複数のFASTAファイル(50K)があります。

CYTC2889-12|Homo sapiens

下線を追加して

CYTC2889-12|Homo_sapiens

そしてその結果をファイルに書き込みます。

私はmacOSで実行しています。

頑張った

 sed -i.bak 's/\s/_/g' file.fas

しかし、これは

>CYTC2889-12|Homo _apien_

似ていますが、正確ではありません。

どんなアイデアがありますか?

答え1

以下を試してください。

sed -i'.bak' 's/[[:space:]]/_/g' file.fas

Linuxを使用しているがGNU sed機能sed -i 's/\s/_/g'しますが、コマンドを使用するとsed --posix -i 's/\s/_/g'機能しません。

したがって、Linuxでposixを使用するには、次のものを使用する必要があります。

sed --posix -i'.bak' 's/[[:space:]]/_/g'  file.fas

関連情報