我有一个文件(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
我想删除第二列中所有出现的[b37],并用列替换逗号,以便FINAL结果如下所示:
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万行。
您可以尝试以下方法:
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
尝试替换出现的b,3和7,而不是字符串“ [b37]”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句