junte-se + solução awk :
join --header file1 file2 | awk 'NR>1{ $2=sprintf("%1.9f",$2); $3=sprintf("%.9f",$3) }1' > result.txt
cat result.txt
col1 file1col2 file2col2
10:100000525-100001560(+) 0.971465227 0.943385997
10:100001724-100002618(+) 0.940918504 0.981929023
10:100002725-100002970(+) 0.946592696 0.955549170
10:100003104-100004184(+) 0.736305487 0.736440827
10:100004450-100005051(+) 0.708230223 0.689045711
10:100005158-100005876(+) 0.969728923 0.964995338
10:100006075-100007551(+) 0.855411431 0.873411848
10:100007764-100009009(+) 0.274219271 0.377197434
10:100009146-100011362(+) 0.927057565 0.943862343
10:100011583-100011887(+) 0.883431739 0.902915706
Detalhes :
-
junte-se
--header
option - trate a primeira linha em cada arquivo como cabeçalhos de campo, imprima-os sem tentar emparelhá-los -
NR>1
- inicia o processamento a partir do segundo registro (NR
- número do registro atual), ou seja, - ignora cabeçalho linha -
sprintf("%1.9f",$2)
- argumento do formato$2
(a segunda coluna) como número flutuante com 9 casas decimais