スペースを__に置き換える方法

スペースを__に置き換える方法

スペースを含むファイルがあります。たとえば、次のようになります。

ACTTTTTTTTGSGSGSGSG  TTT
RTATATTATRSSTSTSTST  HHH

スペースを削除して結果を取得したいです。

ACTTTTTTTTGSGSGSGSG__TTT
RTATATTATRSSTSTSTST__HHH

答え1

の場合、sed各スペースをアンダースコア(_)で置き換えることが目的であると仮定すると、行のすべてのスペースについて

sed 's/ /_/g' file

テスト

$ cat file
ACTTTTTTTTGSGSGSGSG  TTT
RTATATTATRSSTSTSTST  HHH

$ sed 's/ /_/g' file
ACTTTTTTTTGSGSGSGSG__TTT
RTATATTATRSSTSTSTST__HHH

答え2

@Paulo Toméの回答に追加するともっとスペースが2つ以上の場合:

tr -s '[[:blank:]]' < file | sed 's/[[:blank:]]/__/'

常に2つの空白であると仮定します。

tr '[[:blank:]]' '_' < file 

スペースがタブの場合でも機能します。

関連情報