Solução Perl simples:
perl -F, -lape '$_ .= qq(,"$1") while $F[-1] =~ /([0-9]+)/g' FILE
-F,
divide na vírgula (pode quebrar se a vírgula estiver entre aspas duplas após o número, veja abaixo). Embora existam números no último campo, eles são adicionados à linha atual.
Para resolvê-lo corretamente, você deve processar a entrada com o módulo Texto :: CSV do Perl.
#!/usr/bin/perl
use warnings;
use strict;
use Text::CSV;
my $csv = 'Text::CSV'->new({ always_quote => 1,
allow_whitespace => 1,
eol => "\n",
}) or die 'Text::CSV'->error_diag;
open my $IN, '<', shift or die $!;
while (my $row = $csv->getline($IN)) {
my @new;
push @new, $1 while $row->[-1] =~ /([0-9]+)/g;
$csv->print(*STDOUT, [@$row, @new]);
}
$csv->eof or $csv->error_diag;