次のファイルがあります(1kG_MDS5.bim)。
1 rs58108140 0 10583 A G
1 1:11508[b37]A,G 0 11508 A G
1 1:15820[b37]G,T 0 15820 T G
1 1:16257[b37]C,G 0 16257 C G
1 1:16378[b37]C,T 0 16378 T C
2番目の列から[b37]エントリをすべて削除し、コンマをその列に置き換えて、最終結果が次のようになります。
1 rs58108140 0 10583 A G
1 1:11508:A:G 0 11508 A G
1 1:15820:G:T 0 15820 T G
1 1:16257:C:G 0 16257 C G
1 1:16378:C:T 0 16378 T C
次のコマンドを実行してこの問題を部分的に解決しようとしました([b37]のみを削除)。
sed -i -E 's/([b37])/:/g' 1kG_MDS5.bim
しかし、私はこれを得ます:
1 rs58108140 0 1058: A G
1 1:11508[:::]A,G 0 11508 A G
1 1:15820[:::]G,T 0 15820 T G
1 1:1625:[:::]C,G 0 1625: C G
上記のように線が表示された最終結果を取得する方法を教えてください。 sedソリューションである必要はなく(awkがあれば良いでしょう)、ファイルには約600万行が含まれています。
答え1
次のことを試すことができます。
sed 's/\[b37\]\(.\),/:\1:/' 1kG_MDS5.bim
出力:
1 rs58108140 0 10583 A G
1 1:11508:A:G 0 11508 A G
1 1:15820:G:T 0 15820 T G
1 1:16257:C:G 0 16257 C G
1 1:16378:C:T 0 16378 T C
パターンの問題は、角かっこがエスケープされていないため、sed
文字列 "[b37]"の代わりにb、3、7の発生を置き換えようとすることです。