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

Shell et commandes GNU Discussion :

awk - boucle de constantes


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Par défaut awk - boucle de constantes
    Bonjour,

    Afin de parser de facon spécifique un fichier1, je voudrai positionner des index dans un tableau à partir d'un fichier2.

    le fichier ne contient qu'une seule ligne d'index au format suivant:
    i1 i2 i3 i4 i5 i6 ... in

    la difficulté est que le nombre de mots varie, il faut donc que mon script soit modulable.

    question:
    est-il possible de déclarer un ensemble de constantes à l'aide d'une boucle.

    je n'ai pas l'impression que ça marche ; en tout cas, je n'ai pas réussi. Si quelqu'un a une solution:

    ça devrait donner quelque chose de cette forme là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{getline x<fic;size=split(x,a," ");for (i=1; i<size; i++) t$i=a[i];}' fic=fichier2 fichier1
    le bloc n'est pas encore développé. Mais en attendant je n'arrive pas à récupérer sous forme de chaine t1 , t2 ,t3 à tn les futurs index de mon tableau.
    Peut-être qu'il y aurait une autre méthode qu'un getline + split + allocation à des constantes

    Quelqu'un aurait une idée ?

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    'comprend pas, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -vfic=fichier2 '{getline x<fic;size=split(x,a," ");for (i=1; i<size; i++){ new_a[i] = a[i]; print new_a[i]}}' fichier1
    pour peu que fichier1 existe, et soit non-vide, affiche autant de fois qu'il y a de lignes dans fichier1, le contenu du tableau.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Par défaut
    oui effectivement, je suis parti sur cette solution.
    je sais pas pourquoi je m'obstinai à vouloir faire affecter des constantes...
    merci

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

Discussions similaires

  1. [awk] Boucle sur un fichier pendant le traitement d'un autre fichier
    Par boubouboy dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 20/06/2014, 09h22
  2. Awk : passer une constante à une fonction
    Par Taxan dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/03/2013, 17h38
  3. [PHP 5.0] boucle et affichage de constante
    Par PrinceMaster77 dans le forum Langage
    Réponses: 1
    Dernier message: 03/12/2009, 18h02
  4. Boucle awk non finie
    Par zebulon90 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 12/09/2007, 09h14
  5. [Shell] awk dans une boucle while
    Par Shiva dans le forum Linux
    Réponses: 4
    Dernier message: 22/07/2007, 16h28

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