Perl : inclusion de awk
Résolu/Fermé
artagon7
Messages postés
417
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
12 novembre 2024
-
10 févr. 2008 à 23:33
artagon7 Messages postés 417 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 12 novembre 2024 - 16 févr. 2008 à 23:19
artagon7 Messages postés 417 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 12 novembre 2024 - 16 févr. 2008 à 23:19
A voir également:
- Perl : inclusion de awk
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- Perl foreach ✓ - Forum Perl
- Perl substitution ✓ - Forum Perl
- [Perl] WWW::Mechanize - Forum Perl
14 réponses
dubcek
Messages postés
18764
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 février 2025
5 624
11 févr. 2008 à 10:26
11 févr. 2008 à 10:26
les variables awk sont prises pour des variables perl, et comme ça ? my @ls = qx{ls -l $rep | awk '{ print \$5,\$6,\$8 }'};
artagon7
Messages postés
417
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
12 novembre 2024
7
11 févr. 2008 à 19:43
11 févr. 2008 à 19:43
Merci dubcek, je vais essayer cela dans les prochains jours. Trop occupé pour le moment... et pas chez-moi! Je t'en redonne des nouvelles.
Merci. :-)
Merci. :-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
11 févr. 2008 à 20:18
11 févr. 2008 à 20:18
Salut,
pourquoi pas en Perl (vous que tu veux apprendre ;-)
pourquoi pas en Perl (vous que tu veux apprendre ;-)
lami20j@debserv:~/trash$ cat artagon.pl #!/usr/bin/perl use strict;use warnings; my $rep="/home/lami20j/trash/c_exercices"; opendir REP,"c_exercices" or die "E/S :$!\n"; while(my $fic = readdir(REP)){ next if $fic=~/^\.\.?$/; my @stat = (stat("$rep/$fic"))[7,9]; my ($j,$m,$a) = (localtime($stat[1]))[3..5]; printf "$stat[0] %04d-%02d-%02d $fic\n",$a+1900,$m+1,$j; } __END__ lami20j@debserv:~/trash$ perl artagon.pl 4096 2008-02-10 3 543 2008-02-10 functions_date.c lami20j@debserv:~/trash$et voici le résultat de la commande awk
lami20j@debserv:~/trash$ ls -l c_exercices/| awk '{ print $5,$6,$8 }' 4096 2008-02-10 3 543 2008-02-10 functions_date.c
artagon7
Messages postés
417
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
12 novembre 2024
7
14 févr. 2008 à 20:48
14 févr. 2008 à 20:48
Bonjour,
Finalement, je peux vous repondre ...trois jours apres. Excusez-moi du retard.
Premierement, dubcek ta commande marche tres bien.
Quant a toi, lami20j, tu as monte le degre de difficulte d'une coche (plutot de deux ... :-) ). Cependant, dans mon cas ca n'a pas fonctionne. Je n'ai change que le repertoire. Voici le fichier :
/Perl$ cat lami20j_3_champs.pl
#!/usr/bin/perl
use strict;use warnings;
my $rep="/media/sda5/Informatique/Test/Test_1";
opendir REP,"Test_1"
or die "E/S :$!\n";
while(my $fic = readdir(REP)){
next if $fic=~/^\.\.?$/;
my @stat = (stat("$rep/$fic"))[7,9];
my ($j,$m,$a) = (localtime($stat[1]))[3..5];
printf "$stat[0] %04d-%02d-%02d $fic\n",$a+1900,$m+1,$j;
}
__END__
et le resultat :
/Perl$ perl lami20j_3_champs.pl
E/S :No such file or directory
Le repertoire /media/sda5/Informatique/Test/Test_1 existe bel et bien.
Il va falloir que j'y aille bientot. Encore une fois...
Eh lami20j, est-ce que tu connais un operateur dans Perl qui allonge les journees de 6 heures. Je pourrais les consacrer a Perl ...
Merci a vous deux,
Finalement, je peux vous repondre ...trois jours apres. Excusez-moi du retard.
Premierement, dubcek ta commande marche tres bien.
Quant a toi, lami20j, tu as monte le degre de difficulte d'une coche (plutot de deux ... :-) ). Cependant, dans mon cas ca n'a pas fonctionne. Je n'ai change que le repertoire. Voici le fichier :
/Perl$ cat lami20j_3_champs.pl
#!/usr/bin/perl
use strict;use warnings;
my $rep="/media/sda5/Informatique/Test/Test_1";
opendir REP,"Test_1"
or die "E/S :$!\n";
while(my $fic = readdir(REP)){
next if $fic=~/^\.\.?$/;
my @stat = (stat("$rep/$fic"))[7,9];
my ($j,$m,$a) = (localtime($stat[1]))[3..5];
printf "$stat[0] %04d-%02d-%02d $fic\n",$a+1900,$m+1,$j;
}
__END__
et le resultat :
/Perl$ perl lami20j_3_champs.pl
E/S :No such file or directory
Le repertoire /media/sda5/Informatique/Test/Test_1 existe bel et bien.
Il va falloir que j'y aille bientot. Encore une fois...
Eh lami20j, est-ce que tu connais un operateur dans Perl qui allonge les journees de 6 heures. Je pourrais les consacrer a Perl ...
Merci a vous deux,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 févr. 2008 à 20:52
14 févr. 2008 à 20:52
Salut,
Le repertoire /media/sda5/Informatique/Test/Test_1 existe bel et bien.
je n'ai pas dit le contraire ;-)
essaie
Le repertoire /media/sda5/Informatique/Test/Test_1 existe bel et bien.
je n'ai pas dit le contraire ;-)
essaie
#!/usr/bin/perl use strict;use warnings; my $rep="/media/sda5/Informatique/Test"; opendir REP,"Test_1" or die "E/S :$!\n"; while(my $fic = readdir(REP)){ next if $fic=~/^\.\.?$/; my @stat = (stat("$rep/$fic"))[7,9]; my ($j,$m,$a) = (localtime($stat[1]))[3..5]; printf "$stat[0] %04d-%02d-%02d $fic\n",$a+1900,$m+1,$j; } __END__
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 févr. 2008 à 21:01
14 févr. 2008 à 21:01
qui allonge les journees de 6 heures
je ne comprends pas ta question
je ne comprends pas ta question
artagon7
Messages postés
417
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
12 novembre 2024
7
14 févr. 2008 à 21:23
14 févr. 2008 à 21:23
Non lami20j. ca ne fonctionne pas non plus.
A propos del'operateur : les journees ont 24 heures. Est-ce que tu connais un operateur de Perl qui les allongeraient jusqu'a 30 heures... il ne faut pas me prendre toujours au serieux ... ;-)
Je dois quitter pour aller travailler.
Je vais regarder ta reponse demain si possible
Salut et merci,
A propos del'operateur : les journees ont 24 heures. Est-ce que tu connais un operateur de Perl qui les allongeraient jusqu'a 30 heures... il ne faut pas me prendre toujours au serieux ... ;-)
Je dois quitter pour aller travailler.
Je vais regarder ta reponse demain si possible
Salut et merci,
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 févr. 2008 à 21:32
14 févr. 2008 à 21:32
alors affiche le résultat de
#!/usr/bin/perl use strict;use warnings; my $rep="/media/sda5/Informatique/Test"; opendir REP,"Test_1" or die "E/S :$!\n"; while(my $fic = readdir(REP)){ next if $fic=~/^\.\.?$/; print "$rep/$fic\n"; #my @stat = (stat("$rep/$fic"))[7,9]; #my ($j,$m,$a) = (localtime($stat[1]))[3..5]; #printf "$stat[0] %04d-%02d-%02d $fic\n",$a+1900,$m+1,$j; } __END__
artagon7
Messages postés
417
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
12 novembre 2024
7
16 févr. 2008 à 22:43
16 févr. 2008 à 22:43
Salut lami20j,
J'ai essaye ton script soit :
#!/usr/bin/perl
use strict;use warnings;
my $rep="/media/sda5/Informatique/Test";
opendir REP,"Test_1"
or die "E/S :$!\n";
while(my $fic = readdir(REP)){
next if $fic=~/^\.\.?$/;
print "$rep/$fic\n";
}
__END__
et ca donne toujours le meme resultat, soit E/S :No such file or directory.
J'ai observe que le mot REP apparait en noir ordinaire. Habituellement, Kate colorie les caracteres qui font partie d'un mot cle ou d'une variable. Par exemple, dans ton script print est en bleu, my en noir fonce, or en vert, $rep en brun. Ce n'est pas le cas ici. En principe, ca devrait ...
Donc, je crois que Perl ne reconnait pas REP. Est-ce que REP est-un mot cle du langage ou une variable? Tu as defini $rep et non $REP.
Merci, Aujourd'hui, j'ai finalement du temps ... :-)
J'ai essaye ton script soit :
#!/usr/bin/perl
use strict;use warnings;
my $rep="/media/sda5/Informatique/Test";
opendir REP,"Test_1"
or die "E/S :$!\n";
while(my $fic = readdir(REP)){
next if $fic=~/^\.\.?$/;
print "$rep/$fic\n";
}
__END__
et ca donne toujours le meme resultat, soit E/S :No such file or directory.
J'ai observe que le mot REP apparait en noir ordinaire. Habituellement, Kate colorie les caracteres qui font partie d'un mot cle ou d'une variable. Par exemple, dans ton script print est en bleu, my en noir fonce, or en vert, $rep en brun. Ce n'est pas le cas ici. En principe, ca devrait ...
Donc, je crois que Perl ne reconnait pas REP. Est-ce que REP est-un mot cle du langage ou une variable? Tu as defini $rep et non $REP.
Merci, Aujourd'hui, j'ai finalement du temps ... :-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
16 févr. 2008 à 22:47
16 févr. 2008 à 22:47
Salut,
essaie
REP et $rep ne se réfère pas à la même chose ;-)
essaie
#!/usr/bin/perl use strict;use warnings; my $rep="/media/sda5/Informatique/Test"; opendir REP,"Test" or die "E/S :$!\n"; while(my $fic = readdir(REP)){ next if $fic=~/^\.\.?$/; print "$rep/$fic\n"; } __END__
REP et $rep ne se réfère pas à la même chose ;-)
artagon7
Messages postés
417
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
12 novembre 2024
7
16 févr. 2008 à 23:01
16 févr. 2008 à 23:01
Toujours la meme chose ...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
16 févr. 2008 à 23:08
16 févr. 2008 à 23:08
affiche
ls -l /media/sda5/Informatique/Test
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
16 févr. 2008 à 23:11
16 févr. 2008 à 23:11
en fait je pense qu'à l'exécution de script tu n'est pas dans
/media/sda5/Informatique/Test
donc essaie
/media/sda5/Informatique/Test
donc essaie
#!/usr/bin/perl use strict;use warnings; my $rep="/media/sda5/Informatique/Test"; opendir REP,"$rep" or die "E/S :$!\n"; while(my $fic = readdir(REP)){ next if $fic=~/^\.\.?$/; print "$rep/$fic\n"; } __END__
artagon7
Messages postés
417
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
12 novembre 2024
7
16 févr. 2008 à 23:19
16 févr. 2008 à 23:19
Cela a fonctionne cette fois-ci. Effectivement, je mets mes scripts dans un seul repertoire. Je ne veux pas les eparpiller un peu partout. En principe, ca devrait etre la bonne facon de proceder mais j'aurais du le specifier avant ...
Merci lami20j,
Merci lami20j,