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 :

ARGV et ARGC dans un script awk


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 86
    Par défaut ARGV et ARGC dans un script awk
    Bonjour,

    J'ai fait un script awk (stat.awk) qui permet de parser un fichir log pour realser des statistiques comme ceci :
    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
     
    #!/bin/awk -f
    BEGIN {
      #initialisations
    }
     
    (conditions)
    {
    #mes traitements
    }
     
    END   {
     
    #affichages
     
    }
    Au lancement de mon script je donne le nom du fichier log ainsi que plusieurs arguments en ligne pour controler l'affichage et certains traitement. par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./apacStat.awk File.log BT
    alors j'obtient l'erreur ci dessous :
    awk: ./apacStat.awk:156: fatal: cannot open file `BT' for reading (No such file or directory)

    Alors que "BT" ce qu'une argument en ligne pour controler l'affichage et non pas un fichier .

    Comment je peux faire pour eviter cet erreur ?

    Merci en avance

    Kass

  2. #2
    Membre émérite 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
    Par défaut
    La réponse à ta question :

    http://nyal.developpez.com/tutoriel/...php?page=opera

    .../...
    Ainsi il affichera les n premières lignes des fichiers. Mais il faudra l'appeler de la manière suivante avec le shell :
    nyal $ ./aff_n_lines.awk n=7 fichier_texte

    L'argument b=7 ne sera pas pris comme un fichier à lire à cause de sa syntaxe avec le égale. Awk assignera dans le script la valeur à la variable. Ainsi 7 sera assigné à la variable n. Cette valeur est affectée avant que le script soit lancé.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 86
    Par défaut
    Citation Envoyé par BlaireauOne Voir le message
    La réponse à ta question :

    http://nyal.developpez.com/tutoriel/...php?page=opera

    .../...
    Ainsi il affichera les n premières lignes des fichiers. Mais il faudra l'appeler de la manière suivante avec le shell :
    nyal $ ./aff_n_lines.awk n=7 fichier_texte

    L'argument b=7 ne sera pas pris comme un fichier à lire à cause de sa syntaxe avec le égale. Awk assignera dans le script la valeur à la variable. Ainsi 7 sera assigné à la variable n. Cette valeur est affectée avant que le script soit lancé.
    En fait, je connais cette facon.... mais ce je voulais faire d'associer le script de l'appele a ce script parceque l'appele est fait d'une autre script shell et je voulais que les 2 soit dependant.

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/10/2012, 16h52
  2. Initialiser une variable bash dans un script awk
    Par TomRay dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 08/01/2011, 18h25
  3. tableau dans un script awk
    Par kass28 dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 21/03/2008, 20h47
  4. aider moi dans mon script awk
    Par zcoul dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 17/01/2008, 22h03

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