[perl]répertoire aléatoire
Résolu
fxtaa
Messages postés
1050
Date d'inscription
Statut
Membre
Dernière intervention
-
fxtaa Messages postés 1050 Date d'inscription Statut Membre Dernière intervention -
fxtaa Messages postés 1050 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je pense avoir un tit problème de syntaxe sur la navigation avec perl. Je souhaite ouvrir le fichier readme.txt, celui-ci se trouve toujours au même endroit, seul un répertoire est légèrement modifié.
Exemple de chemins :
/home/toto/bob2056/readme.txt
/home/toto/bob4444/readme.txt
/home/toto/bob4567zx5402/readme.txt
(en gros pour une navigation sous unix l'on taperait : vi /home/toto/bob*/readme.txt)
(Il n'y a toujours qu'un bob* par répertoire.)
les codes déjà testés :
Bref, je commence à me poser des question sur la possibilité de la chose....
Any ideas ?
Je pense avoir un tit problème de syntaxe sur la navigation avec perl. Je souhaite ouvrir le fichier readme.txt, celui-ci se trouve toujours au même endroit, seul un répertoire est légèrement modifié.
Exemple de chemins :
/home/toto/bob2056/readme.txt
/home/toto/bob4444/readme.txt
/home/toto/bob4567zx5402/readme.txt
(en gros pour une navigation sous unix l'on taperait : vi /home/toto/bob*/readme.txt)
(Il n'y a toujours qu'un bob* par répertoire.)
les codes déjà testés :
1 : open(D, "</home/toto/bob*/readme.txt"); 2 : open(D, "</home/toto/bob\*/readme.txt"); 3 : $bob =~ /bob.*/; open(D, "</home/toto/$bob/readme.txt"); 4 : $bob = bob*; open(D, "</home/toto/$bob/readme.txt");
Bref, je commence à me poser des question sur la possibilité de la chose....
Any ideas ?
A voir également:
- [perl]répertoire aléatoire
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Tirage au sort excel aléatoire sans doublon ✓ - Forum Excel
- Pourquoi certains contacts disparaissent de mon répertoire - Accueil - Guide Android
- Commande dos copy répertoire et sous répertoire ✓ - Forum Windows
- Excel générer mot de passe aléatoire - Forum Excel
4 réponses
Re,
Voici une manière pour récupérer le nom de fichier avec le chemin complet. A toi d'adapter.
Résultat
Voici une manière pour récupérer le nom de fichier avec le chemin complet. A toi d'adapter.
#!/usr/bin/perl use strict;use warnings; my $rep="/home/lami20j/trash/"; my @fic=glob("${rep}bob*/readme.txt"); for my $fic(@fic){ open F,"$fic" or warn "E/S $fic : $!\n"; print "contenu $fic : "; while(<F>){ print; } close $fic; } __END__
Résultat
lami20j@debian:~$ perl bob.pl contenu /home/lami20j/trash/bob2056/readme.txt : salut1 contenu /home/lami20j/trash/bob4444/readme.txt : salut2 contenu /home/lami20j/trash/bob4567zx5402/readme.txt : salut3
Salut,
(Il n'y a toujours qu'un bob* par répertoire.)
Ben, non.
Dans /home/toto il y a 3 bob
bob2056
bob4444
bob4567zx5402
vi bob*/readme.txt va ouvrir les 3 fichiers que tu dois éditer un par un en utilisant :next, :previous pour changer de buffer.
Tu veux faire quoi exactement, puisque je n'ai pas compris?
Tu veux ouvrir un handle pour chaque fichier readme.txt de chaque répertoire bob* ?
(Il n'y a toujours qu'un bob* par répertoire.)
Ben, non.
Dans /home/toto il y a 3 bob
bob2056
bob4444
bob4567zx5402
lami20j@debian:~$ ls -l /home/lami20j/trash/bob* /home/lami20j/trash/bob2056: total 4 -rw-r--r-- 1 lami20j lami20j 7 déc 21 17:07 readme.txt /home/lami20j/trash/bob4444: total 4 -rw-r--r-- 1 lami20j lami20j 7 déc 21 17:07 readme.txt /home/lami20j/trash/bob4567zx5402: total 4 -rw-r--r-- 1 lami20j lami20j 7 déc 21 17:07 readme.txt lami20j@debian:~$ grep -H '.*' /home/lami20j/trash/bob*/readme.txt /home/lami20j/trash/bob2056/readme.txt:salut1 /home/lami20j/trash/bob4444/readme.txt:salut2 /home/lami20j/trash/bob4567zx5402/readme.txt:salut3
vi bob*/readme.txt va ouvrir les 3 fichiers que tu dois éditer un par un en utilisant :next, :previous pour changer de buffer.
lami20j@debian:~$ vi /home/lami20j/trash/bob*/readme.txt 3 fichiers à éditer :ls 1 %a ".local/share/Trash/files/bob2056/readme.txt" ligne 1 2 ".local/share/Trash/files/bob4444/readme.txt" ligne 0 3 ".local/share/Trash/files/bob4567zx5402/readme.txt" ligne 0
Tu veux faire quoi exactement, puisque je n'ai pas compris?
Tu veux ouvrir un handle pour chaque fichier readme.txt de chaque répertoire bob* ?