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