Rechercher : dans
Par :

Traitement perl repertoire-et ss repertoire

Dernière réponse le 17 jun 2009 à 16:28:08 knebhi, le 16 avr 2008 à 11:16:15 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaiterai effectuer un traitement sur des fichiers txt pour enlever une partie du texte (l'en-tête).
J'ai ce script perl qui devrait me renvoyer mes fichiers .abu en .txt après les avoir traités.

Cependant, il me renvoit l'erreur :

impossible d'ouvrir Francois.le.champi_ABU.abu


voici mon code perl :
#!/usr/bin/perl

use strict;
use locale;

if ( $#ARGV != 0 ){ 
    die "Usage : ", $0, " REPERTOIRE\n";
}

##ouverture du repertoire en argument
opendir( REPERTOIRE, $ARGV[0] ) or 
    die "impossible d'ouvrir le répertoire ", $ARGV[0], "\n";
    
###on stocke les fichier .abu dans @fichiers
my @fichiers = grep( /\.abu$/, readdir(REPERTOIRE) );
closedir(REPERTOIRE);
##boucle pour remplacer les .Abu en .txt
for my $f (@fichiers){
    my $r = $f ;
    $r =~ s/^(.*)\.abu$/$1.txt/;
    print STDERR $r, "\n";
    # traitement du fichier pour enlever les entetes
    open(ENTREE, "<" $f) or die "impossible d'ouvrir ", $f;
    open(SORTIE, ">", $r) or die "impossible d'ouvrir ", $r;
    my $dans_texte = 0;
    while(my $ligne = <ENTREE>)
    {
	if($ligne =~ / FIN DU FICHIER /)
		{
	    $dans_texte = 0;
		}	
	if($dans_texte){
	    print SORTIE $ligne ;
	}
	if($ligne =~ / DEBUT DU FICHIER /){
	    $dans_texte = 1;
	}
    }
    close(SORTIE);
    close(ENTREE);
}


je precise que je suis sous mac os et que ma je tape le nom du fichier.pl et le repertoire en argument

merci
Configuration: Mac OS X

Meilleures réponses pour « traitement perl repertoire et ss repertoire » dans :
Perl - Les fichiers Voir La notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
Traitement d'images VoirIntroduction au traitement d'images On désigne par traitement d'images numériques l'ensemble des techniques permettant de modifier une image numérique dans le but de l'améliorer ou d'en extraire des informations. Histogramme Un histogramme est...
Les variables avec Perl VoirConcept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...
MERISE - Modèle conceptuel des traitements VoirLe modèle conceptuel des traitements Le modèle conceptuel des traitements permet de traiter la dynamique du système d'information, c'est-à-dire les opérations qui sont réalisées en fonction d'événements. Ce modèle permet donc de représenter de...

1

youlla, le 17 jun 2009 à 15:01:20

Bonjour
au fait,je vous écri nn pas pr répondre a votr question ( je suis Dsl, je débute sur Perl) ,je voulai vous poser des question si possibl ...
je doi faire un programme avec Perl ki permet de faire un certain traitemen sur un répertoir,ou il ya des noms,des dates ... comm tu peu l voir :
-rw------- 1 shoang shomcmo 27 Mar 30 23:33 shoang.forward
-rw------- 1 sifrseis sismercb 30 Dec 22 2004 sifrseis.forward
-rw------- 1 sispubli other 27 Apr 5 2005 sispubli.forward
-rw------- 1 sjacquin orstenv 27 Apr 15 14:16 sjacquin.forward
-rw------- 1 skerampr ensieta 27 Mar 30 23:31 skerampr.forward
-rw------- 1 slaville genembcb 43 Jun 24 2005 slaville.forward
-rw------- 1 slouazel shomcmo 27 Mar 30 23:33 slouazel.forward
-rw------- 1 sloyer shomcmo 27 Mar 30 23:33 sloyer.forward
-rw------- 1 jfilipot ditiric 78 Dec 8 2005 socean.forward
-rw------- 1 spinson root 27 May 26 16:52 spinson.forward
-rw------- 1 spouliqu cersat 36 May 6 2008 spouliqu.forward
-rw------- 1 sraynaud actimar 27 Mar 31 10:51 sraynaud.forward
-rw------- 1 25582 cneva 24 Oct 15 2003 sstourm.forward.old
-rw-r--r-- 1 statipev other 41 Aug 26 2004 statipev.forward
-rw------- 1 tarfaomo ensieta 27 Mar 30 23:31 tarfaomo.forward
-rw------- 1 11764 nse 25 Nov 27 2007 tfabre.forward
-rw------- 1 tgorgues orstenv 27 May 18 09:20 tgorgues.forward


et je sai vrmt pas commen j doi procéder :(:(

Répondre à youlla

2

knebhi, le 17 jun 2009 à 15:05:08

Tu veu faire quoi comme traitement exactement?

Répondre à knebhi

3

youllla, le 17 jun 2009 à 15:10:52

Je doi just lister ceux dont le proprio est root, ceux qui ont une extension aprés le forwward par exple : .sar .mag ... et ceu ki datent d'avant une ceratine date

Répondre à youllla

4

knebhi, le 17 jun 2009 à 15:18:27

Je pense que c'est pas très compliqué. en fait, ce que tu dois faire c'est lire ton fichier ligne par ligne.

ensuite tu fera une boucle conditionnel :
1) si c'est root tu aura le -r donc tu utilisera les expression réguliere
2) si après le forward tu as un '.'
3) pour les dates je te propose de lister les mois ki te concerne et de récupérer
(si sa se décompose en jour tu pourra aussi mai la jai pa la méthode fau réfléchir)

si tu connais un peu les methodes de lecture de fichier, les regexp et les structure conditionnel come if alors tu va te débrouiller

Répondre à knebhi

5

youllla, le 17 jun 2009 à 15:26:57

Merci bcp :)
la je suis dans un répertoire,et je doi faire ce tri dans ce meme répertoire ,dans ce dernier comm vs avez pu le constater ,ya des colonnes correspondants aux : dates, fichier .forward, noms d'expéditeurs etc
le pblm c k j sai pa commen accéder a chak champ :s

Répondre à youllla

6

knebhi, le 17 jun 2009 à 16:16:43

Si jcomprend bien c'est des répertoire et non un fichier?

Répondre à knebhi

7

 youllla, le 17 jun 2009 à 16:28:08

Oui voila c des repertoires

Répondre à youllla