# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/\.\d+(*SKIP)(*FAIL)|\B(?=(?:\d{3})+(?!\d))/,/gm;t' <<< "123456789.1
123456789
1.1
10.1
100.1
1000.1
10000.11
100000.1111111111
1000000.111
10000000.11111.1111
100000000.111111
1000000000.1111111
123456789
1
10
100
1000
10000
100000
1000000
10000000
100000000
1000000000"
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for SED, please visit: https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html