The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Het passeren van de waarden op de secundaire script wanneer het door de primaire script venu_eie UNIX for Advanced & Expert Gebruikers 2 07-03-2008 08:10
Het passeren van de waarden op de secundaire script wanneer het door de primaire script venu_eie Programmeren en Shell Scripting 1 07-03-2008 07:16
maken van een shell script dat vraagt een ander script en een awk script magikminox Programmeren en Shell Scripting 0 06-26-2008 03:50
me helpen met het versturen van parameters uit sqlplus script Unix shell script Hara Programmeren en Shell Scripting 2 01-29-2008 03:31 PM
Shell Script: wilt invoegen waarden in de database als update script ring Programmeren en Shell Scripting 1 10-25-2007 04:06

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 02-11-2009
fedora fedora is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 94
het oplossen van dit awk script?

Ik heb een log file, terwijl er zo uitziet

+ +
user_a blabla
nas_b blabla blabla user_d
dit is een user_a
junk-lijn
een junk lijn
user_c nas_m blabla
+ +

in feite het grootste deel van de lijnen bevatten een "user" zoekwoorden, en de rest van de lijnen hebben geen "user" at all.

Dus ik heb het volgende script, dat net haalt de gebruikers aan te maken (als die lijn heeft een gebruiker trefwoord) van elke regel

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

en toen ik voer het uit, ik kreeg het volgende resultaat

user_a
user_d
user_a
user_a #<\u003d\u003d\u003d eigenlijk is er geen gebruiker in die lijn helemaal.
user_c

waarom dit gebeurt en hoe kan ik dit oplossen mijn script? bedankt
  #2 (permalink)  
Old 02-11-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: december 2007
Locatie: Home 17-time wereld kampioen Boston Celtics
Berichten: 1311
Cool

Ik denk dat het komt omdat je altijd een waarde af te drukken. Dus, u bent niet meer dan het schrijven van 'a' ni de aanleg van het 4e lijn, dus als je de variabele af te drukken, krijg je de laatst opgeslagen waarde van 'a'.
Misschien als de eerste regel ater je anders doen een
Code:
a=""
op blanco uit de laatste 'een' waarde?
  #3 (permalink)  
Old 02-11-2009
fedora fedora is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 94
Ik reliazed dat probleem, maar het lijkt alsof ik niet kan oplossen van het probleem, hier is de gewijzigde script

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

en de output veranderen in

nee
user_d
user_a
nee
nee

die niet correct is at all.


Citaat:
Oorspronkelijk geplaatst door joeyg View Post
Ik denk dat het komt omdat je altijd een waarde af te drukken. Dus, u bent niet meer dan het schrijven van 'a' ni de aanleg van het 4e lijn, dus als je de variabele af te drukken, krijg je de laatst opgeslagen waarde van 'a'.
Misschien als de eerste regel ater je anders doen een
Code:
a=""
op blanco uit de laatste 'een' waarde?
  #4 (permalink)  
Old 02-11-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.875
Met awk:

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

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

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

Join Date: Jul 2006
Posts: 94
Bedankt, ik weet dat in dit voorbeeld gaf ik, egrep een betere keuze is, maar eigenlijk mijn echte werk is "het vinden van zowel de" gebruiker "en" nas "deel, en print het resultaat.

hieronder is het resultaat ik wil

+
user_a nas_b
user_d nas_b
user_a
user_c nas_m
+

Maar het probleem is, maakt niet uit hoe ik veranderde mijn script, ik zal niet de gewenste resultaten te ...

[QUOTE \u003d radoulov; 302286540] Met awk:

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

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.875
Citaat:
Oorspronkelijk geplaatst door fedora View Post
Bedankt, ik weet dat in dit voorbeeld gaf ik, egrep een betere keuze is, maar eigenlijk mijn echte werk is "het vinden van zowel de" gebruiker "en" nas "deel, en print het resultaat.

hieronder is het resultaat ik wil

+
user_a nas_b
user_d nas_b
user_a
user_c nas_m
+
Ik begrijp de logica niet ...
Waarom user_d nas_b?
  #7 (permalink)  
Old 02-11-2009
fedora fedora is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 94
sorry, dat was een typfout
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 10:32 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0