![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Skicka värden till den sekundära skriptet när den åberopas av primära script | venu_eie | UNIX för avancerade & Expertanvändare | 2 | 07-03-2008 08:10 |
| Skicka värden till den sekundära skriptet när den åberopas av primära script | venu_eie | Shell-programmering och Skript | 1 | 07-03-2008 07:16 |
| skapa ett shell script som kräver ett annat manus och och en awk script | magikminox | Shell-programmering och Skript | 0 | 06-26-2008 03:50 |
| hjälpa mig med att skicka parametrar från sqlplus manus till Unix shell script | Hara | Shell-programmering och Skript | 2 | 01-29-2008 03:31 |
| Shell Script: vill infoga värden i databasen när uppdateringen skriptet körs | ring | Shell-programmering och Skript | 1 | 10-25-2007 04:06 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
hur man rättar till detta awk script?
Jag har en loggfil samtidigt ser ut så här
+ + user_a blabla blabla nas_b blabla user_d Detta är en user_a junk line annat skräp linje user_c nas_m blabla + + i stort sett de flesta av linjerna innehåller en "användare" nyckelord, och resten av linjerna inte har "användare" alls. Så jag har följande skript, som bara extraherar användardelen (om den linjen har en användare sökord) från varje rad awk '(for (i \u003d 0; i <\u003d NF; i + +) if ($ i ~ / user /) (a \u003d $ i) annan () fortsätta (print a) ) '/ Tmp / test och när jag kör det, jag fick följande resultat user_a user_d user_a user_a #<\u003d\u003d\u003d faktiskt finns ingen användare i den linjen alls. user_c varför detta händer och hur kan jag fixa mitt manus? tack |
|
||||
|
Jag reliazed det problemet, men det verkar jag kan inte lösa problemet, här är det ändrade skriptet
awk '(for (i \u003d 0; i <\u003d NF; i + +) if ($ i ~ / user /) (a \u003d $ i) annan (a \u003d "no") () Fortsätta (print a) ) '/ Tmp / test och produktionen förändring nej user_d user_a nej nej vilket inte är korrekt alls. Citat:
|
|
||||
|
Tack, jag vet i det här exemplet jag gav, är egrep ett bättre val, men faktiskt min verkliga arbetet "ta reda på både" användare "och" nas "sidan, och sedan skriva ut resultatet. nedan är resultatet jag vill ha + user_a nas_b user_d nas_b user_a user_c nas_m + Men problemet är, oavsett hur jag ändrat mitt manus, jag bara inte kommer att få det önskade resultatet ... [Quote \u003d radoulov; 302286540] Med awk: Kod:
awk '{
for (i=1; i<=NF; i++)
if ($i ~ /user/)
print $i
}' infile
Med Perl: |
|
|||||
|
Citat:
Varför user_d nas_b? |