Bonjour,
oui, Perl est tout-à-fait adapté pour faire ce genre d'opérations sur des milliers de fichiers. Traiter tous les fichiers d'un répertoire est un peu plus simple sous Unix que sous Windows, et la syntaxe d'appel ne sera pas tout-à-fait la même. Sous quel système es-tu?
Mais ta syntaxe ne marchera pas vraiment dans ce cas-ci.
D'après l'exemple que tu donnes, l'opération à faire semble être un simple dédoublonnage. Dans ce cas, inutile de recourir aux expressions régulière et à la fonction s///.
Il suffit de lire chaque ligne du fichier en entrée et de l'imprimer sur la sortie si elle est différente de la précédente.
La syntaxe sera à peu près la suivante (je ne peux pas tester dans l'immédiat dans le train):
perl -ni.bak -e 'print if $_ eq $old; $old = $_;' *.xml
Partager