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 :

shell et awk


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Par défaut shell et awk
    bonjour,en fait j'ai un petit problème concernant la récupération des variables dans une commande awk dont j'ai besoin à l'extérieur c'est a dire sous shell,
    je suis entrain de realiser une application de gestion de ficher de log,et j'ai arrivé
    à parser ce fichier grâce a une commande awk mais j'ai pas trouver la solution pour insérer ces champs dans une base de données.
    voila le code de la commande awk:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    awk 'BEGIN{package="";ch1="";ch2="";classe="";methode="";inter=" ";ligne="";taille=0;pospar=0;povir=0;meth=0;trois=$3;quatre=$4;cinq=$5}{if ($1 ~ /^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]$/) 
        {if ($3 ~ "DEBUG")
         {
        print"\n**********************debutde cette ligne******************"
        com=""
        package=""
        ch1=substr($2,0,8)
        ch2=substr($2,10,3)
        taille=length($4)
        pospar=index($4,"(")
        povir=index($4,":")
        meth=split(substr($4,2,pospar-2),T,".")
        package=T[0]
        for(i=1;i<meth-1;i++)
        {package=package"."T[i]}
        classe=T[meth-1]
        methode=T[meth]
        print"------------------------------->le package est : ",package
        print"------------------------------->la classe est : ",T[meth-1]
        print "------------------------------>la methode est : "T[meth]
        ligne=substr($4,povir+1,taille-povir-2)
        print "la ligne d erreur est : ",substr($4,povir+1,taille-povir-2)
        print "la date est:",$1," à lheure ", ch1
        print "cette operation dure ", ch2,"ms"
        print"le login est", $5
        for (j=6;j<NF+1;j++)
            {$j=$j inter
            com=com $j}
        print"le message est: ",com
     
         print"\n**********************fin de cette ligne******************"
        }
        else 
            { print"\n**********************debutde cette ligne******************"
        com=""
        package=""
        ch1=substr($2,0,8)
        ch2=substr($2,10,3)
        taille=length($4)
        pospar=index($4,"(")
        povir=index($4,":")
        meth=split(substr($4,2,pospar-2),T,".")
        package=T[0]
        for(i=1;i<meth-1;i++)
        {package=package"."T[i]}
        classe=T[meth-1]
        methode=T[meth]
        print"------------------------------->le package est : ",package
        print"------------------------------->la classe est : ",T[meth-1]
        print "------------------------------>la methode est : "T[meth]
        ligne=substr($4,povir+1,taille-povir-2)
        print "la ligne d erreur est : ",substr($4,povir+1,taille-povir-2)
        print "la date est:",$1," à lheure ", ch1
        print "cette operation dure ", ch2,"ms"
        print"le login est", $5
        for (j=6;j<NF+1;j++)
            {$j=$j inter
            com=com $j}
        print"le message est: ",com
     
        }
        }
     
        else 
        {print $0}
        }' $1
    et voila le code que j'étulise sous shell pour l'insertion:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sqlplus -s << ENDSQL
    login/pwd@DB
    set heading off;
    set feedback off;
    insert into TABLE values(des variables dans awk);
    exit;
    ENDSQL
    quelqu'un qui peut m'aider pour résoudre ce problème.
    pour toute aide je serais reconnaissant. merci

  2. #2
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    Pourquoi ne génère tu pas un fichier qui contient les lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    login/pwd@DB
    set heading off;
    set feedback off;
    insert into TABLE values(des variables dans awk);
    exit;
    Comme celà avec awk tu peux générer la commande insert SQL

Discussions similaires

  1. Shell avec awk dans aix7
    Par neneke dans le forum Autres langages
    Réponses: 1
    Dernier message: 10/06/2015, 10h34
  2. Réponses: 3
    Dernier message: 18/07/2007, 17h20
  3. script shell : probleme avec sed et awk
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 05/06/2007, 11h57
  4. Awk et shell
    Par nine dans le forum Linux
    Réponses: 2
    Dernier message: 09/10/2006, 14h12
  5. Tableau en paramètre - Shell et Awk
    Par gc243 dans le forum Linux
    Réponses: 7
    Dernier message: 10/12/2003, 13h32

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