Bonjour,
J'avais laisser un peu de côté ce script. Voilà le script que j'ai finalement mis en place. Toutefois, on peut faire mieux.
#!/usr/bin/perl
#
# script maj.pl
use POSIX qw(locale_h);
$old_locale = setlocale(LC_CTYPE);
setlocale(LC_CTYPE, "fr_FR.ISO8859-1");
$delimited_in = ';';
$delimited_out = "\t";
use locale;
while (<>)
{
($ine , $id , @tab) = split /$delimited_in/;
$tab[0] =~ s/(\w+)/\u\L$1/g; ### 1ère lettre de la colonne nom du tableau en majuscule.
$tab[1] =~ s/(\w+)/\u\L$1/g; ### 1ère lettre de la colonne prenom du tableau en majuscule.
($num,$prem,@tab2)=split(/ /,lc($tab[2]));## Absorption numéro, rue et le reste en tableau=> le tout en minuscule
$prem=~s/(\w+)/\u\L$1/g;## convertion du premier caractère de la rue en majuscule
$end=pop(@tab2);## extraction du dernier mot du tableau
$end=~s/(\w+)/\u\L$1/g;## convervion du premier caractère de la ville en majuscule
$tab[2]=join ' ',($num,$prem,@tab2,$end);## affectation de l'ensemble dans tab2[]
print join $delimited_out, ($id , $ine , @tab) ;
}
setlocale(LC_CTYPE, $old_locale);
--------------------------------------------------------
Résultat
33000128 9999999999N Terrieur Alain 13 Rue thibault Chabrand 95240 CORMEILLES EN PARISIS FRANCE
44150912 1234567891Z Terrieur Alex 10 Rue charle Drot 92500 RUEIL MALMAISON FRANCE
00000178 1987654321F Peuplu Jean 15 Rue bernard de Jussieu 92600 ASNIERES SUR SEINE FRANCE
00000180 1357911134G Opera Chantal 25 Rue de la Marne 78800 HOUILLES FRANCE