![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Passing the values to the secondary script when it invoked by primary script | venu_eie | UNIX for Advanced & Expert Users | 2 | 07-03-2008 07:10 AM |
| Passing the values to the secondary script when it invoked by primary script | venu_eie | Shell Programming and Scripting | 1 | 07-03-2008 06:16 AM |
| create a shell script that calls another script and and an awk script | magikminox | Shell Programming and Scripting | 0 | 06-26-2008 02:50 AM |
| help me in sending parameters from sqlplus script to unix shell script | Hara | Shell Programming and Scripting | 2 | 01-29-2008 03:31 PM |
| Shell Script: want to insert values in database when update script runs | ring | Shell Programming and Scripting | 1 | 10-25-2007 03:06 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
how to fix this awk script?
i have a log file while looks like this
++ user_a blabla blabla nas_b blabla user_d this is a user_a junk line another junk line user_c nas_m blabla ++ basically most of the lines contain a "user" keywords, and the rest of the lines do not have "user" at all. So I have the following script, which just extracts the user part(if that line has a user keyword) from each line awk '{ for (i=0; i<=NF; i++) if($i~/user/) {a=$i} else {continue} {print a} }' /tmp/test and when I run it, I got the following result user_a user_d user_a user_a #<===actually there is no user in that line at all. user_c why this happens and how can I fix my script? thanks |
|
||||
|
I reliazed that problem, but it seems I can not fix the problem, here is the modified script
awk '{ for (i=0; i<=NF; i++) if($i~/user/) {a=$i} else {a="no"} { continue} {print a} }' /tmp/test and the output change to no user_d user_a no no which is not correct at all. Quote:
|
|
||||
|
Thanks, I know in this example I gave, egrep is a better choice, but actually my real work is "finding out both "user" and "nas" part, and then print out the result.
below is the result I want + user_a nas_b user_d nas_b user_a user_c nas_m + But the problem is, no matter how i modified my script, I just won't get the desired result... [quote=radoulov;302286540]With awk: Code:
awk '{
for (i=1; i<=NF; i++)
if ($i ~ /user/)
print $i
}' infile
|
|
|||||
|
Quote:
Why user_d nas_b? |
|
||||
|
sorry, that was a typo
|
| Sponsored Links | ||
|
|