Seulement sed et rien d'autre
sed 's/ \+/,/g' ifile.txt > ofile.csv
cat ofile.csv
1,4,22.0,3.3,2.3
2,2,34.1,5.4,2.3
3,2,33.0,34.0,2.3
4,12,3.0,43.0,4.4
awk
peut être un peu exagéré ici. À mon humble avis, en utilisant tr
pour des substitutions directes comme celle-ci, c'est beaucoup plus simple :
$ cat ifile.txt | tr -s '[:blank:]' ',' > ofile.txt