![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| AWK (NAWK) et le filtrage des valeurs | Nicol | UNIX pour les nuls Questions et réponses | 11 | 04-23-2008 05:40 AM |
| awk / nawk retour valeurs décimales? | moutaye | De programmation et de script Shell | 1 | 03-25-2008 03:04 PM |
| awk / nawk retour valeurs décimales? | moutaye | SUN Solaris | 1 | 03-25-2008 03:02 PM |
| est-il possible de transmettre les valeurs des variables externes à nawk? | swamymns | De programmation et de script Shell | 1 | 02-02-2006 06:13 AM |
| nawk et variables | plimpix | De programmation et de script Shell | 8 | 07-11-2005 12:56 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Je suis de nouveau à des scripts shell et avez un problème s'il vous plaît aidez-moi dans le script j'ai un bloc qui a nawk une variable count nawk ( . . . count \u003d count 1 print count ) Maintenant, je veux accéder à la valeur de la variable à l'extérieur du bloc awk, comme .. Code:
s=`expr count / m` (m est une variable shell) Je suis tombé sur la façon d'accéder aux variables shell awk à l'intérieur du bloc, mais est-il possible d'accéder à des valeurs de variables à l'extérieur de la awk awk bloc? S'il vous plaît, aidez-moi Merci d'avance. Dernière édition par Yogesh Sawant; au 05.13.2008 09:57 AM.. Motif: Ajout de balises de code |
|
||||
|
sa ne fonctionne pas ... en tout cas merci mon problème est exact que je avoir un fichier de log de fichiers et j'ai besoin de contrôler le fichier journal, il a des lignes comme ... Code:
19 Mar 01:01:17:845 [Servlet.Engine.Transports : 3] AUDIT event.platform.interactionCompleted - name=,duration=9247 (IID=0003080248636880, TID=0030000248650301, CAPPID=000C0546517C) J'ai ici pour en extraire la valeur de la durée c'est-à-dire 9247 et de la comparer avec une valeur seuil de délai, si elle est supérieure à cette valeur, compter toutes ces lignes. puis trouver un ratio de temps de compte à compter du total interactions.i écrit comme un script Code:
TRNSthreshold=5000
nawk -v v1=$TRNSthreshold '/interactionCompleted/ {var1=$10
if ((x=(index(var1,","))) > 0)
{
time=(substr(var1,x+1,length(var1)))
if((y=(index(time,"="))) > 0)
{
t=0+(substr(time,y+1,length(time)))
}
}
if (t > v1)
{
print "duration greater than threshold value: " t
count=count+1
print "count of interactions timed out " count
}
}' 0003080248636880.txt
m=`grep -c "interaction Completed" 0003080248636880.txt`
echo "total count of interactions" $m
s=`expr $count / $m`
echo "ratio is " $s
mon problème est i am nt en mesure d'accéder à la valeur de compter à l'extérieur du bloc awk. S'il vous plaît, aidez me.thanks à l'avance Dernière édition par Yogesh Sawant; au 05.13.2008 09:59 AM.. Motif: Ajout de balises de code |
|
||||
|
Vous êtes mieux calculer le ratio à l'intérieur du script awk trop, en plus de expr pourcentages ne peuvent pas faire, il suffit de l'arithmétique entière (sic).
Dans le cas plus général, de rendre votre script awk imprimer ce que vous voulez faire passer en contrebande de retour à la coque, et l'exécuter dans backticks, comme vous faites avec grep-c pour obtenir le nombre d'interactions. Le fait que vous pouvez passer d'une chaîne représentant un programme awk ne signifie pas que vous avez accès à l'état interne awk une fois qu'il est en cours d'exécution, pas plus que vous pouvez obtenir l'accès à l'état intérieur grep une fois qu'il est en cours d'exécution. Vous pouvez passer dans l'entrée, et de récupérer la sortie. |
|
||||
|
Salut Saniya,
Essayez cette #! / bin / ksh count \u003d 0 Threshold \u003d 5000 tout lire en ligne faire val \u003d `echo $ line | cut-d" "-f10 | cut-d" \u003d "-f3` if [$ val-ge $ Seuil] puis count \u003d `expr $ count + 1` fi done <0003080248636880.txt echo "Nombre de valeurs au-dessus de seuil est de $ count" total \u003d `grep-c" interactionCompleted "0003080248636880.txt» echo "$ Total est total" s \u003d `echo" scale \u003d 4; $ count / $ total "| bc` echo "moyenne est de $ s" Merci Penchal |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|