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

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

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

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 

空白がタブであってもこれらは機能します:

関連情報