02-11-2009
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
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Gurus,
I am struggling with a issue and thought I could use some of your expertise.
Need Help with this
I have a flat file that has millions of records
24|john|account ~ info |56|
25|kuo|account ~ journal |58|
27|kim|account ~ journal |59|
28|San|account ~
journal |60|... (3 Replies)
Discussion started by: rimss
3 Replies
2. Shell Programming and Scripting
z=9
i=0
h=02
min=55
while
do
cat /home/barmecha/test | grep $h:$min >> /home/barmecha/file1
min=`expr $min + 1`
if ;
then
h=`expr $h + 1`
fi
i=`expr $i + 1`
done
i have a log file with time wise log in it, this script help me to pull out logs of the give time interval...but the... (8 Replies)
Discussion started by: abhishek27
8 Replies
3. Shell Programming and Scripting
Hi Friends,
Need some help in AWK.
Working on AIX 5
Have been trying the following functionality to make the record length fixed:
if( length(record) < 300 )
{
printf("%-300s\n", record);
}
In my opinion it will apply some fillers in the end.
Its is not making any... (4 Replies)
Discussion started by: kanu_pathak
4 Replies
4. Shell Programming and Scripting
Hi
I use the following code to read the file and to fix the length of the column of the record in the file 'Sample.txt'
ls Samp* | awk '
{ a=$1 }
END{
FS="n"
for(i=1;i<=NR;i++)
{
while( getline < a )
{
f1=$0;
print("Line::",f1);
f2=substr(f1,1,10)
print("Field1::",f2);... (10 Replies)
Discussion started by: meva
10 Replies
5. Shell Programming and Scripting
I have a script which will mask the 9th and 15th column in a record starting with BPR.
The record looks like below before my script
BPR*C*160860.04*C*ACH*CTX*01*072000326*DA*1548843*3006968523**01*071000013*DA*5529085*100323*VEN
The record will be masked after my script parses this... (19 Replies)
Discussion started by: Muthuraj K
19 Replies
6. Shell Programming and Scripting
Hi
I am dealing with the following string:
Date: Thur, 13 March 2011 01:01:10 +0000
I asked for help in another topic that converted a similar string:
Date: Thur, 13 March 2011 9:50 AM
To a 24 hr standard. The problem is that it comes out as:
Date: Thur, 13 March 2011 9:50:00 +0000... (4 Replies)
Discussion started by: duonut
4 Replies
7. UNIX for Dummies Questions & Answers
Good morning, fellows. I would need to ask for your help in editing my awk script. Here is the original version:
BEGIN { printf ("CRYST1 200.000 200.000 200.000 90.00 90.00 90.00 P 1 1\n")
maxatoms=1000
natom=0
found_struct = 0
found_bond = 0
}
{
if( NF == 5 )
{
foundff=0
natom++... (9 Replies)
Discussion started by: snysmumrik
9 Replies
8. Shell Programming and Scripting
Hi ,
I'd like to give you a little bit idea about my script which is used to get any generated file from remote server using ftp session then organized those file into directories based on their date ( at the end I supposed to have 1 months directories 20130401 20130402 ....20130430 ,... (27 Replies)
Discussion started by: arm
27 Replies
9. Shell Programming and Scripting
Hi All,
I have problem in the middle of implementing to users, whereby the complaint is all about the decimal place which is too long. I need two decimal places only, but the outcome from command is always fixed to 6.
See the sample :
before:
Sort Total
Site Sort SortName Parts ... (3 Replies)
Discussion started by: horsepower
3 Replies
10. UNIX for Dummies Questions & Answers
Hi all...
i have been trying to make this work but I have been failing for 6 hours ..
I know it should be something simple that I am missing to it would be great if you can help me ...
I want to subtract a fixed value (lets set 1) from any value >=1 from the whole file
my file looks like
... (4 Replies)
Discussion started by: A-V
4 Replies
JOIN(1) General Commands Manual JOIN(1)
NAME
join - relational database operator
SYNOPSIS
join [-an] [-e s] [-o list] [-tc] file1 file2
DESCRIPTION
Join forms, on the standard output, a join of the two relations specified by the lines of file1 and file2. If file1 is `-', the standard
input is used.
File1 and file2 must be sorted in increasing ASCII collating sequence on the fields on which they are to be joined, normally the first in
each line.
There is one line in the output for each pair of lines in file1 and file2 that have identical join fields. The output line normally con-
sists of the common field, then the rest of the line from file1, then the rest of the line from file2.
Fields are normally separated by blank, tab or newline. In this case, multiple separators count as one, and leading separators are dis-
carded.
These options are recognized:
-an In addition to the normal output, produce a line for each unpairable line in file n, where n is 1 or 2.
-e s Replace empty output fields by string s.
-o list
Each output line comprises the fields specified in list, each element of which has the form n.m, where n is a file number and m is a
field number.
-tc Use character c as a separator (tab character). Every appearance of c in a line is significant.
SEE ALSO
sort(1), comm(1), awk(1).
BUGS
With default field separation, the collating sequence is that of sort -b; with -t, the sequence is that of a plain sort.
The conventions of join, sort, comm, uniq, look and awk(1) are wildly incongruous.
7th Edition April 29, 1985 JOIN(1)