OVH Cloud OVH Cloud

commande find

1 réponse
Avatar
nicolas_laurent545
Ce script doit lire plusieurs fichiers dans un repertoire effectuer le
traitement (numeroter les mots) et ecrire une sortie pour chaque
fichier.
Je n'arrive pas a trouver ce qui ne fonctionne pas. Je vous remercie
de votre aide.

use strict;
use warnings;
use File::Find;

# Passer deux arguments a la commande find
# premier argument est une subroutine qui est traitement sur chaque
fichier.
# deuxieme argument est le repertoire courant

find(\&number, ".");

# Subroutine that number words.
sub number {
while (<>) {
my @words = split(/\W*\s+\W*/, $_); # split
foreach my $num ( 0 .. $#words) {
open OUT, ">out_$ARGV.txt" and select OUT if 1..1;
{print $num+1, "\t$words[$num] -- file $ARGV\n"}

}
}
}

1 réponse

Avatar
J.Pierre Pourrez
Le Sat, 09 Apr 2005 11:00:58 -0700, nicolas-laurent a écrit :

Ce script doit lire plusieurs fichiers dans un repertoire effectuer le
traitement (numeroter les mots) et ecrire une sortie pour chaque fichier.
Je n'arrive pas a trouver ce qui ne fonctionne pas. Je vous remercie de
votre aide.

use strict;
use warnings;
use File::Find;

# Passer deux arguments a la commande find # premier argument est une
subroutine qui est traitement sur chaque
fichier.
# deuxieme argument est le repertoire courant

find(&number, ".");

# Subroutine that number words.
sub number {
while (<>) {
my @words = split(/W*s+W*/, $_); # split
foreach my $num ( 0 .. $#words) {
open OUT, ">out_$ARGV.txt" and select OUT if 1..1; {print $num+1,
"t$words[$num] -- file $ARGVn"}


}
}


Manquera pas un petite "close OUT;" dans la boucle ?

Cordialement
Jean-Pierre