IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Extraction d'enregistrement d'un fichier sous UNIX


Sujet :

Linux

  1. #1
    Membre régulier Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Points : 95
    Points
    95
    Par défaut Extraction d'enregistrement d'un fichier sous UNIX
    Sous UNIX,

    j'ai un fichier1 qui est constitué comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    A infoA
    B infoB
    C infoC
    A infoA1
    B infoB1
    C infoC1
    A infoA2
    B infoB2
    C infoC2
    Comment je peux récupérer dans un fichier2 les enreg qui ont un A en position 1, puis dans un fichier3 les enreg B qui ont un B en position 1, puis dans un fichier4 les enreg C qui ont un C en position 1?

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    In Perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #!/usr/bin/perl -w
     
    use strict;
     
    open FILE,"< file1.txt" or die "$!\n";
    open FILE_DEST1, "> recupA.txt" or die "$!\n";
    open FILE_DEST2, "> recupB.txt" or die "$!\n";
    open FILE_DEST3, "> recupC.txt" or die "$!\n";
    while(<FILE>){
    if(/^A/){
    print FILE_DEST1 $_;
    }
    elsif(/^B/){
    print FILE_DEST2 $_;
    }
    elsif(/^C/){
    print FILE_DEST3 $_;
    }
    }
    close FILE and close FILE_DEST1 and close FILE_DEST2 and close FILE_DEST3;
    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    avec grep :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #/bin/sh
    cat test |  grep -e "^A" > fic1
    cat test |  grep -e "^B" > fic3
    cat test |  grep -e "^C" > fic4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    etienne@info1:~/test $ cat fic1
    A infoA
    A infoA1
    A infoA2
    etienne@info1:~/test $ cat fic3
    B infoB
    B infoB1
    B infoB2
    B infoB2
    etienne@info1:~/test $ cat fic4
    C infoC
    C infoC1
    C infoC2

    Le problème c'est que je fais 3 cat, alors c'est pas très optimal... Je pense qu'il y a mieux à faire ...
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  4. #4
    Membre régulier Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Points : 95
    Points
    95
    Par défaut
    ça me va... C'est pour utiliser une seule fois, sans shell... Par contre, j'y connait pas grand chose, tu pourrais m'expliquer STP.
    merci

  5. #5
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Citation Envoyé par Titouf
    ça me va... C'est pour utiliser une seule fois, sans shell... Par contre, j'y connait pas grand chose, tu pourrais m'expliquer STP.
    merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat test |  grep -e "^A" > fic1
    je te conseille d'utiliser man
    cat permet d'afficher sur la sortie standard un fichier
    | est un caractère spécial qui permet de rediriger la sortie standard d'un programme vers un autre programme
    grep permet de récupérer des données selon un motif
    A la limite, j'aurai pu faire ça aurait moins absurde...
    le -e permet d'utiliser des motifs (ou pattern en anglais) selon la méthode des expressions régulières (ça va nous permettre d'utiliser ^)

    le ^ permet de ne choisir que les lignes qui commencent par ... A ici

    ensuite on redirige la sortie standard vers un fichier. ici fic1.

    Je te conseille de te documenter. La documentation abondent sur le web.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  6. #6
    Membre régulier Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Points : 95
    Points
    95
    Par défaut
    Merci.
    c'est très sympa...
    Et si tu as un bouquin à me conseiller plutôt... je suis preneur...
    Merci encore.

  7. #7
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Citation Envoyé par Titouf
    Merci.
    c'est très sympa...
    Et si tu as un bouquin à me conseiller plutôt... je suis preneur...
    Merci encore.
    Désolé mais je ne connais pas de bouquin qui va bien.

    voici une adresse très très bien:
    http://madchat.org/coding/sh/write_a_shell_script-fr.htm

    Au fait ... N'oublie pas de cliquer sur le bouton résolu.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  8. #8
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    taratata ggnore...
    *sourire commercial*
    Developpez.com a ta solutioncours fait pas notre ami MarcG
    Grave urgent !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Longueur d'un fichier sous UNIX
    Par DIE dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 16/02/2007, 09h53
  2. Copier fichiers sous UNIX sur cle USB
    Par eldiablol dans le forum Administration système
    Réponses: 3
    Dernier message: 30/11/2006, 19h10
  3. Verouillage fichier sous UNIX
    Par bigben99 dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2006, 14h07
  4. Notification de modification de fichier sous unix en java
    Par deomis dans le forum Général Java
    Réponses: 6
    Dernier message: 20/06/2006, 14h43
  5. Concaténation de fichiers sous UNIX?
    Par airmax77 dans le forum Linux
    Réponses: 4
    Dernier message: 27/01/2006, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo