use warnings; use strict; die < source file to be processed Output is printed to stdout HELP while (<>) { chomp; print join ' ', grep {/^[+-]?\d+(\.\d*)?$/} split; print "\n"; } #### 1 1549367 11 8 3 11 0 -12.00 6.00 -0.25 -3.00 0.00 -1.67 -12.00 6.00 -0.64 1 1549501 15 12 3 3 12 -17.00 6.00 0.50 1.00 6.00 2.67 -17.00 6.00 0.93 1 1549552 14 11 3 6 8 -31.00 6.00 -2.09 -12.00 3.00 -5.67 -31.00 6.00 -2.86 1 1549563 14 9 5 5 9 -7.00 6.00 0.22 -64.00 4.00 -18.40 -64.00 6.00 -6.43 1 1549726 14 13 1 8 6 -3.00 6.00 1.92 6.00 6.00 6.00 -3.00 6.00 2.21 2 1549737 16 15 11 16 10 -64.00 6.00 -35.67 -64.00 6.00 -46.18 -64.00 6.00 -40.12 2 1549815 9 7 2 8 1 -3.00 6.00 -0.14 -9.00 0.00 -4.50 -9.00 6.00 -1.11 1 1549914 12 11 1 9 3 -9.00 6.00 1.18 -4.00 -4.00 -4.00 -9.00 6.00 0.75 1 1550018