Re: Expressions regulières //netoyage de fichiers SAMBA

2007-04-20 Par sujet pascal
Eric DECORNOD a écrit :

 PS+HS : en parlant de troll, j'ai été surpris de l'extraordinaire modération 
 dans le fil « zsh vs bash » de lundi. J'attendais un peu de spectacle ;-)
 (les basheux auraient-ils disparu ?)

Mais...mais quel jour sommes-nous ?
Ha oui d'accord.

Trop gros...Passera pas.
 
 Cordialement,
De même
P.


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expressions regulières //netoyage de fichiers SAMBA

2007-04-19 Par sujet Eric DECORNOD
Le jeudi 19 avril 2007 11:06, Cédric LE BRIS a écrit :
 Bonjour,  je cherche des connaisseurs shell:) [...]
s/shell/perl/

 rename 's/[éèêë]/e/g' $1
 rename 's/[ÈÉÊË]/E/g' $1
 rename 's/[àáâãäå]/a/g' $1
 rename 's/[ÀÁÂÃÄÅ]/A/g' $1
 rename 's/[ïîìí]/a/g' $1
 rename 's/[ÌÍÏÎ]/I/g' $1
 rename 's/[òóôõö]/o/g' $1
 rename 's/[ÒÓÔÕÖ]/O/g' $1
 rename 's/[ùúûü]/u/g' $1
 rename 's/[ÙÚÛÜ]/U/g' $1
 rename 's/[$!?µ£ %]/_/g' $1
 Si qq a une expression plus propre ;)
 Merci
tr/èêëÈÉÊËàáâãäåÀÁÂÃÄÅïîìíÌÍÏÎòóôõöùúûüÙÚÛÜ$!?µ£ 
%/aaAAo___/

c.f. : 
http://perldoc.perl.org/perlop.html#tr/SEARCHLIST/REPLACEMENTLIST/cds-tr-y-transliterate-/c-/d-/s

sinon mais je suis pas sur :
rename '
s/[=a=]/a/g;
s/[=A=]/A/g;
s/[=e=]/e/g;
s/[=E=]/E/g;
...
' $1

Cordialement,
-- 
Eric DÉCORNOD
Ingénieur d'Études
SCICS - Faculté des Sciences
Université Henri Poincaré



Re: Expressions regulières //netoyage de fichiers SAMBA

2007-04-19 Par sujet Daniel Caillibaud
Cédric LE BRIS a écrit :
 Bonjour, je cherche des connaisseurs shell:)
 En fait je cherche à faire une petite boucle qui passerais en récursif 
 l'ensemble des fichiers
 Pour les nettoyer de leur accents et de leus espaces
 Voilà ce que j'ai sous la main pour le moment:
  
 Le problème c'est qu' j'aimerais passer un test à chaque fichier pour voir si 
 chaqe condition est respectée...

rename -n ...

 rename 's/[éèêë]/e/g' $1 
 rename 's/[ÈÉÊË]/E/g' $1 
 rename 's/[àáâãäå]/a/g' $1 
 rename 's/[ÀÁÂÃÄÅ]/A/g' $1 
 rename 's/[ïîìí]/a/g' $1 
 rename 's/[ÌÍÏÎ]/I/g' $1 
 rename 's/[òóôõö]/o/g' $1 
 rename 's/[ÒÓÔÕÖ]/O/g' $1 
 rename 's/[ùúûü]/u/g' $1 
 rename 's/[ÙÚÛÜ]/U/g' $1 
 rename 's/[$!?µ£ %]/_/g' $1

Pour cette dernière, je listerait plutôt tous les caractères acceptés et 
remplacerait le reste par _, du genre
rename 's/[^a-zA-Z0-9\-_ ]/_/g' $1
puis virer éventuellement les _ doublés
rename 's/__/_/g' $1

Mais tu vas avoir un pb, car seul la 1re modif va marcher, pour les suivantes, 
$1 aura changé...

Je te conseillerais plutôt d'utiliser sed pour tout faire en 1 fois, genre
new=$(echo $1 | sed -e 's/[éèêë]/e/g; s/[ÈÉÊË]/E/g; ... ; s/[^a-zA-Z0-9\-_ 
]/_/g; s/__/_/g')

ou mieux avec
new=$(echo $1|sed -e 'y/áàâäçéèêëíìîïñóòôöúùûü 
ÁÀÂÄÇÉÈÊËÍÌÎÏÑÓÒÔÖÚÙÛÜ/cn_cn/; 
s/[^a-zA-Z0-9\-_ ]/_/g; s/__/_/g')
# Attention, la ligne ci-dessus vire les majuscules et les espaces, je te 
laisse corriger
if ( $new != $1)
then
  echo Renommer '$1' en '$new' ?
  read rep
  [ $rep == 'o' ]  mv $1 $new  echo renommage OK
fi

tr 'y/chars/chars/' marche aussi si tu n'es pas en utf8.

Daniel


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expressions regulières //netoyage de fichiers SAMBA

2007-04-19 Par sujet Daniel Caillibaud
Eric DECORNOD a écrit :
 tr/èêëÈÉÊËàáâãäåÀÁÂÃÄÅïîìíÌÍÏÎòóôõöùúûüÙÚÛÜ$!?µ£ 
 %/aaAAo___/

Attention à l'utf8, cf 
http://www.opengroup.org/onlinepubs/009695399/utilities/tr.html (merci à 
Vincent Lefevre)

Daniel


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expressions regulières //netoyage de fichiers SAMBA

2007-04-19 Par sujet Eric DECORNOD
Le jeudi 19 avril 2007 13:13, Daniel Caillibaud a écrit :
 Eric DECORNOD a écrit :
  tr/èêëÈÉÊËàáâãäåÀÁÂÃÄÅïîìíÌÍÏÎòóôõöùúûüÙÚÛÜ$!?µ£
  %/aaAAo___/
 Attention à l'utf8, cf
 http://www.opengroup.org/onlinepubs/009695399/utilities/tr.html (merci à
 Vincent Lefevre)
 Daniel
/usr/bin/rename n'utilise pas /usr/bin/tr, mais la fonction eval() de perl.

Pour que Perl respecte le utf8 dans LANG,
il faut définir la variable d'environnement PERL_UNICODE=SDAL

Quand on est en utf-8, il y a mieux :
# apt-get install libtext-unidecode-perl
$ PERL_UNICODE=SDA perl -MText::Unidecode -pe 'unidecode($_)'  cötÖnÉфЛЯ
cotOnEfLIa

par exemple:
ls -1 | PERL_UNICODE=SDA \
perl -MText::Unidecode -ne 'rename $_, unidecode($_) or warn $! : $_'

Cordialement,
-- 
Eric DÉCORNOD
Ingénieur d'Études
SCICS - Faculté des Sciences
Université Henri Poincaré



Re: Expressions regulières //netoyage de fichiers SAMBA

2007-04-19 Par sujet Eric DECORNOD
Le jeudi 19 avril 2007 15:23, Jacques L'helgoualc'h a écrit :
 Eric DECORNOD a écrit, jeudi 19 avril 2007, à 11:48 :
 [...]
  sinon mais je suis pas sur :
  rename '
  s/[=a=]/a/g;
 [...]
  $ echo éêè | perl -pe 's/[=e=]/e/g'
 POSIX syntax [= =] is reserved for future extensions in regex;
 marked by -- HERE in m/[=e=] -- HERE / at -e line 1.
 Ce n'est encore qu'une promesse (sous Sarge)...
 --
 Jacques L'helgoualc'h
troll
J'ai vu, ;-(... encore un vaporware, comme utf8 facile pour tous.
/troll

A avoir quinze moteurs de regexp différents on ne sait plus qui correspond à 
quoi... « The POSIX character classes [.cc.] and [=cc=] are recognized but 
not supported and trying to use them will cause an error. »
Désolé pour les indications foireuses, j'espère m'être rattrapé avec 
Text:Unidecode.

J'ai même fini par ré-écrire Text::Unidecode en Java tellement cette fonction 
me manque en général...

PS+HS : en parlant de troll, j'ai été surpris de l'extraordinaire modération 
dans le fil « zsh vs bash » de lundi. J'attendais un peu de spectacle ;-)
(les basheux auraient-ils disparu ?)

Cordialement,
-- 
Eric DÉCORNOD
Ingénieur d'Études
SCICS - Faculté des Sciences
Université Henri Poincaré