我有一个这样的文件:
chr1:34610-36081 1.20286
chr1:69090-70008 0.0392553
chr1:321083-321115 0
chr1:321145-321207 85.0555
chr1:367658-368597 0.114414
我想转换为:
chr1 34610 36081 1.20286
chr1 69090 70008 0.0392553
chr1 321083 321115 0
chr1 321145 321207 85.0555
chr1 367658 368597 0.114414
我可以删除冒号,但我不能在它们之间创建一个空格
cut -d: -f1,2 file | sed s/\:/\/g
答案 0 :(得分:3)
您可以使用tr
:
tr ':-' ' ' < /your/file
答案 1 :(得分:2)
最简单的解决方案是sed
:
$ sed 's/[:-]/ /g' file
chr1 34610 36081 1.20286
chr1 69090 70008 0.0392553
chr1 321083 321115 0
chr1 321145 321207 85.0555
chr1 367658 368597 0.114414
要将更改存储回文件,您可以使用-i
选项:
$ sed -i 's/[:-]/ /g' file
答案 2 :(得分:1)
到目前为止,我们有tr
解决方案和sed substitution
解决方案,awk有点矫枉过正,但我们可以使用sed + tr
来播放它:甚至比sed s/../../
更短:)< / p>
sed 'y/:-/ /' file
示例: