The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



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
Passer les valeurs de l'enseignement secondaire où il script principal invoqué par script venu_eie UNIX for Advanced & Expert Users 2 07-03-2008 07:10 AM
Passer les valeurs de l'enseignement secondaire où il script principal invoqué par script venu_eie De programmation et de script Shell 1 07-03-2008 06:16 AM
créer un script shell qui appelle un autre script et un script awk magikminox De programmation et de script Shell 0 06-26-2008 02:50 AM
aidez-moi dans l'envoi des paramètres de script pour sqlplus script shell unix Hara De programmation et de script Shell 2 01-29-2008 03:31 PM
Shell Script: vous voulez insérer des valeurs dans la base de données mise à jour lorsque le script s'exécute anneau De programmation et de script Shell 1 10-25-2007 03:06 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 02-11-2009
fedora fedora is offline
Registered User
  
 

Date d'inscription: juillet 2006
Posts: 94
la façon de résoudre ce script awk?

j'ai un fichier journal, tout ressemble à ça

+ +
user_a blabla
nas_b blabla blabla user_d
il s'agit d'un user_a
junk ligne
une autre ligne de junk
user_c nas_m blabla
+ +

essentiellement la plupart des lignes contenant un "utilisateur" des mots-clés, et le reste des lignes n'ont pas de «l'utilisateur» à tous.

Donc, j'ai le script suivant, qui vient de l'utilisateur extraits partie (si la ligne a un mot-clé) de chaque ligne

awk '(for (i \u003d 0; i <\u003d NF; i + +)
if ($ i ~ / user /)
a \u003d $ (i)
autre
(continue)
(print a)
) '/ Tmp / test

et quand je le lancer, j'ai eu le résultat suivant

user_a
user_d
user_a
user_a #<\u003d\u003d\u003d effectivement il n'ya pas que l'utilisateur en ligne à tous.
user_c

pourquoi cela se produit et comment puis-je réparer mon script? merci
  #2 (permalink)  
Old 02-11-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: Dec 2007
Lieu: Accueil de 17-champion du monde Boston Celtics
Messages: 1311
Cool

Je pense que c'est parce que vous avez toujours l'impression d'une valeur. Donc, vous ne sont pas sur-écrire »un« ni l'exemple de la 4e ligne, de sorte que lorsque vous imprimez la variable, vous obtenez la dernière valeur de 'a'.
Peut-être que la première ligne de votre eau d'autre, faire un
Code:
a=""
à blanc sur le dernier 'a' la valeur?
  #3 (permalink)  
Old 02-11-2009
fedora fedora is offline
Registered User
  
 

Date d'inscription: juillet 2006
Posts: 94
Je reliazed ce problème, mais il semble que je ne peux pas résoudre le problème, voici le script de modification

awk '(for (i \u003d 0; i <\u003d NF; i + +)
if ($ i ~ / user /)
a \u003d $ (i)
autre
(a \u003d "no")
(Continue)
(print a)
) '/ Tmp / test

et le changement à la sortie

non
user_d
user_a
non
non

qui n'est pas correct du tout.


Citation:
Posté par joeyg View Post
Je pense que c'est parce que vous avez toujours l'impression d'une valeur. Donc, vous ne sont pas sur-écrire »un« ni l'exemple de la 4e ligne, de sorte que lorsque vous imprimez la variable, vous obtenez la dernière valeur de 'a'.
Peut-être que la première ligne de votre eau d'autre, faire un
Code:
a=""
à blanc sur le dernier 'a' la valeur?
  #4 (permalink)  
Old 02-11-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Messages: 2860
Avec awk:

Code:
awk '{ 
  for (i=1; i<=NF; i++)
    if ($i ~ /user/)
      print $i
      }' infile
Avec Perl:

Code:
perl -lne'print $1 while /(user[^\s]*)/g' infile
Avec GNU grep:

Code:
grep -o 'user[^ \t]*' infile
  #5 (permalink)  
Old 02-11-2009
fedora fedora is offline
Registered User
  
 

Date d'inscription: juillet 2006
Posts: 94
Merci, je sais que dans cet exemple, j'ai donné, egrep est un meilleur choix, mais en fait, mon vrai travail est de trouver à la fois de "l'utilisateur" et "nas" partie, puis d'imprimer le résultat.

ci-dessous est le résultat, je veux

+
user_a nas_b
user_d nas_b
user_a
user_c nas_m
+

Mais le problème est que, quel que soit i modifié mon script, j'ai tout simplement de ne pas obtenir le résultat souhaité ...

[QUOTE \u003d radoulov; 302286540] Avec awk:

Code:
awk '{ 
  for (i=1; i<=NF; i++)
    if ($i ~ /user/)
      print $i
      }' infile
Avec Perl:
  #6 (permalink)  
Old 02-11-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Messages: 2860
Citation:
Posté par fedora View Post
Merci, je sais que dans cet exemple, j'ai donné, egrep est un meilleur choix, mais en fait, mon vrai travail est de trouver à la fois de "l'utilisateur" et "nas" partie, puis d'imprimer le résultat.

ci-dessous est le résultat, je veux

+
user_a nas_b
user_d nas_b
user_a
user_c nas_m
+
Je ne comprends pas la logique ...
Pourquoi user_d nas_b?
  #7 (permalink)  
Old 02-11-2009
fedora fedora is offline
Registered User
  
 

Date d'inscription: juillet 2006
Posts: 94
désolé, c'est une faute de frappe
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 11:40 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0