![下線をスペースで区切る方法は? [閉鎖]](https://linux33.com/image/122091/%E4%B8%8B%E7%B7%9A%E3%82%92%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%A7%E5%8C%BA%E5%88%87%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
私は次のデータを持っています:
ID Affection rs3117294 rs2747453 rs2747454 rs2747457 rs3131888
D0024949 0 C_C A_G A_G A_A A_G
D0024302 0 A_C A_A A_G A_A A_A
D0023151 0 C_C A_G A_A A_A G_G
D0022042 0 A_C A_A G_G A_A A_A
D0021275 0 C_C A_G A_G A_A A_G
D0021163 0 A_A A_A G_G A_A A_A
D0020795 0 A_A A_A G_G A_C A_G
D0020691 0 A_A A_A G_G A_C A_G
D0019121 0 A_A A_A G_G C_C G_G
下線を空白に変更してC_CがCCになるようにしたいと思います。
どうすればいいですか?私が持っているすべてのデータに適用されるようにコードを一般化してください。
「私のコードではない」誰かから次の内容を受け取りましたが、 sed '1d' plink.raw | sed 's/_/ /g' > plinkv2.raw
不完全なデータを含む空のセルが表示されます。
答え1
グヌsed
:
sed -itmp 's/\(\w\)_\(\w\)/\1 \2/g' file
file
元のファイルのバックアップを上書きして保存しますfile.tmp
。
POSIX sed
:
sed 's/\([[:alpha:]]\)_\([[:alpha:]]\)/\1 \2/g' file > file2
別のファイルにリダイレクトする必要があります。file2
必要な方はオリジナルにコピーしてください。
どちらも「逆参照」という概念を使用します。パターンに\(
..があるテキストは、等に置き換えることが\)
できます。\1
\2
答え2
Please find the below command and output
ファイル全体で_を空白に置き換えます。
awk '{gsub("_"," ",$0);print $0}' j.txt
D0024949 0 C C A G A G A A A G
D0024302 0 A C A A A G A A A A
D0023151 0 C C A G A A A A G G
D0022042 0 A C A A G G A A A A
D0021275 0 C C A G A G A A A G
D0021163 0 A A A A G G A A A A
D0020795 0 A A A A G G A C A G
D0020691 0 A A A A G G A C A G
D0019121 0 A A A A G G C C G G
最初の一致のみを置き換えたい場合
sed "s/_/ /1" 入力ファイル
説明が必要な場合はお知らせください。正しい入力と出力を提供してください。