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

Unix Discussion :

traitement de fichier avec AWK


Sujet :

Unix

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut traitement de fichier avec AWK
    Bonjour,

    j'ai ce script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nawk -F " " 'FILENAME==ARGV[1]{x[$1]=1; next} x[$1]{OFS = " " ;print $0 > "result_1"} !x[$1]{OFS = " " ;print $0 > "result_2" } ' fichier_1.txt fichier_2.txt

    quelqu'un peut il s'il vous plait m'expliquer ce qu'il fait car je débute en shell unix

    que représente : x[$1]=1 ?

    merci pour votre aide

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 247
    Points : 473
    Points
    473
    Billets dans le blog
    1
    Par défaut
    que représente : x[$1]=1 ?
    A priori je dirais que cela affecte la valeur 1 à la ligne d'identifiant "1er champs de la ligne" du tableau x.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    En fait ce qu'on m' a expliqué c'est que ce code sépare les lignes du fichier_2.txt.

    il va mettre dans "result_1" les lignes du fichier_2.txt pésentent dans fichier_1.txt et le reste il le met dans "result_2"

    Mais j'ai du mal à comprendre comment il fonctionne pour faire cette séparation.

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Ce n'est pas du awk de débutant.

    Voici comment comprendre le code:

    Si le fichier traité est fichier_1.txt, mettre dans un tableau associatif le premier mot de chacune des lignes.

    Sinon (traitement du fichier_2.txt),
    mettre dans result_1 les lignes de fichier_2.txt dont la valeur de la première colonne est aussi présente dans le tableau précédemment crée, c'est à dire dont la première colonne existe dans fichier_1.txt, dans le cas contraire (la première colonne contient une valeur absente de fichier_1.txt), mettre la ligne dans result_2.

Discussions similaires

  1. Probleme de retour chariot (Traitement du fichier avec AWK)
    Par abb.wafa dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 21/01/2010, 16h05
  2. Lire un fichier avec awk
    Par lili2704 dans le forum Linux
    Réponses: 4
    Dernier message: 18/01/2007, 16h53
  3. problème formatage de fichier avec awk
    Par nenekes dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 02/11/2006, 13h53
  4. Formatage de fichier avec awk
    Par sam56 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 12/10/2006, 12h04
  5. TRaitement de fichier avec PERL
    Par Dr_GonZO dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2005, 13h38

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