excellent tiens, je ne connaissais pas le -p , bon ca, bon ca..
Yeps ;-)
En fait, j'ai fait une petite erreur:
-n = "while (<>) { ... }"
-p = "while (<>) { ... ; print $_; }"Donc -p == -n + print $_
;-)
Un truc plut�t g�nial aussi, c'est -i :
perl -p -i.old -e 's/foo/bar/g' spam
Avec le -i (suivi/accol� d'une extension de fichier), Perl prend le(s) fichier(s) en param�tres ("spam" dans l'exemple), en fait d'abord un "mv" avec l'extension indiqu�e dans le -i (".old" dans l'exemple), l'utilise ensuite comme source pour l'expression ('s/foo/bar/g'), ceci combin� au -p qui donne la boucle while autour de STDIN comme d�crit ci-dessus. Le r�sulat est ensuite �crit dans le nom de fichier original ("spam" dans l'exemple).
En clair, la ligne perl ci-dessus revient � faire ceci:
mv spam spam.old
perl -e 'while (<>) { s/foo/bar/g; print $_; }' < spam.old > spamOn peut �galement ajouter un pr�fixe, d�placer l'ancienne version dans un autre r�pertoire, etc...
Il suffit pour cela d'utiliser "*" dans l'extension sp�cifi�e derri�re le -i: "*" sera remplac� par le nom du fichier.
En outre, si l'on ne sp�cifie rien derri�re le "-i", le fichier original est tout simplement �cras� (pas de backup donc).
Et puis il y a encore une possibilit� bien scabreuse � la Perl d'utiliser cela pour copier des fichiers:
perl -pi 'brol/*.orig' -e 1 a b c d e f g h
Avec cette ligne-l�, les fichiers a, b, c, d, e, f, g et h seront copi�s avec l'extension ".orig" dans le sous-r�pertoire "brol".
Aucune modification n'est faite �tant donn� que l'expression "1" en Perl ne fait rien du tout et retourne OK ;-)
Plus d'infos dans "man perlrun" => "-i"
-- -o) Pascal Bleser http://guru.unixtech.be /\\ <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> _\_v The more things change, the more they stay insane.
_______________________________________________________ Linux Mailing List - http://www.unixtech.be Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux Archives: http://www.mail-archive.com/[EMAIL PROTECTED] IRC: efnet.unixtech.be:6667 - #unixtech

