com awk
:
awk '{for (i=1; i<=NF; ++i) {gsub(",[0-9].*", "", $i)}}; 1'
-
for (i=1; i<=NF; ++i)
itera sobre os números de campo -
{gsub(",[0-9].*", "", $i)}
substitui tudo depois de uma vírgula seguida por um dígito e, em seguida, qualquer coisa com nulo; esta é uma operação no local
Exemplo:
% awk '{for (i=1; i<=NF; ++i) {gsub(",[0-9].*", "", $i)}}; 1' <<<'Chr11 38465225 0.523952,0.5 4.67466,3.0103 2662 4.06441,3.73412 6.21149 53.0049,55.4167 58.8243 7269,408 92146 73.8888,21.1059 46.0485 62,1 4.06441,3.0103 3.8106 MAP_outliers'
Chr11 38465225 0.523952 4.67466 2662 4.06441 6.21149 53.0049 58.8243 7269 92146 73.8888 46.0485 62 4.06441 3.8106 MAP_outliers