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 :

aide script awk


Sujet :

Linux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut aide script awk
    Bonjour à tous,

    Je débute avec awk dont je ne maitrise pas encore toute la puissance, je viens demander de l'aide pour écrire un script.

    Le problème peut être résumé ainsi :

    Étant donné un fichier "table_in" contenant n valeurs disposées en colonnes, fournir le fichier 'table_out" contenant n/4 valeurs toujours en colonnes, où :
    - la première ligne de "table_out" est la moyenne des 4 premieres lignes de "table_in"
    - la deuxième ligne de 'table_out" est la moyennes des 4 lignes suivantes de 'table_in'
    ...etc...

    Merci beaucoup de votre aide et de vos propositions !

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut précision
    bien sur on peut faire :

    awk -f moy.awk table_in.dat

    avec dans le fichier moy.awk :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    {
            if (NR%4==0)
            {
                    print (moy+$1)/4
                    moy=0
            }
            else
            {
                    moy+=$1
            }
    }
    mais je voudrai savoir s'il est possible de faire un script d'une seule ligne, ce que je n'arrive pas.

  3. #3
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Sauf erreur de ma part, ton script ne gère pas « Étant donné un fichier "table_in" contenant n valeurs disposées en colonnes »
    Il ne gère qu'une colonne.
    Et pourquoi tiens-tu absolument à ce que ton script soit sur une seule ligne ?

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 043
    Points
    31 043
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par s@mson Voir le message
    bien sur on peut faire :

    awk -f moy.awk table_in.dat

    avec dans le fichier moy.awk :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    {
            if (NR%4==0)
            {
                    print (moy+$1)/4
                    moy=0
            }
            else
            {
                    moy+=$1
            }
    }
    mais je voudrai savoir s'il est possible de faire un script d'une seule ligne, ce que je n'arrive pas.
    On peut toujours écrire un pgm awk en une ligne. Illisible la ligne mais possible.

    N'oublie pas d'initialiser "moy" pour le tout premier calcul. D'ailleurs moi je ferais l'addition tout le temps et le print seulement si NR % 4 == 0 (ca évite un "else" inutile). Mais comme le dit BlaireauOne, tu ne gères qu'une seule colonne. Pour gérer "n" colonnes il te faut un tableau de moyennes (une moyenne par colonne)....

Discussions similaires

  1. Aide script .awk
    Par roxxo dans le forum Linux
    Réponses: 6
    Dernier message: 13/10/2010, 12h51
  2. aide sur un script awk
    Par hbidak dans le forum Linux
    Réponses: 1
    Dernier message: 01/04/2010, 09h50
  3. Aide script perl
    Par donmamio dans le forum Langage
    Réponses: 10
    Dernier message: 08/08/2006, 17h34
  4. Aide script PHP
    Par popsantiago dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2006, 22h18
  5. [Oracle 8.1.7] Aide script
    Par fmoriet dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/02/2006, 12h27

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