How to print more than online using awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to print more than online using awk
# 1  
Old 06-22-2006
Lightbulb How to print more than online using awk

Would you please help me on formatting the following lines of information.

Input file:
-- appl = host = user = / pid = 76 elapsed = 0.000 seconds server_elapsed = 0.000 [ one line only]
select emp_no, dept_no
from emp
where empname like 'Rob%'
;

-- appl = host = user = / pid = 76 elapsed = 0.000 seconds server_elapsed = 0.999 [ one line only]
select emp_no, dept_no
from dept
where deptname like 'IT%'
;

Output need to have all lines where server_elapsed >0.100 like below
server_elapsed=0.999 |select emp_no, dept_no from dept where deptname like 'IT%' ; [One line only]
# 2  
Old 06-22-2006
Code:
>cat inp

-- appl = host = user = / pid = 76 elapsed = 0.000 seconds server_elapsed = 0.000
select emp_no, dept_no
from emp
where empname like 'Rob%'
;

-- appl = host = user = / pid = 76 elapsed = 0.000 seconds server_elapsed = 0.999
select emp_no, dept_no
from dept
where deptname like 'IT%'
;

Code:
firststring=`awk -F"=" '/server_elapsed/ { if( $7 > 0.100 ) { print "server_elapsed="$7"|"} }' inp`
val=`awk -F"=" '/server_elapsed/ { if( $7 > 0.100 ) { print NR } }' inp`
echo $firststring`awk -F"=" '{ if(NR > '$val' && NR <= '$val' + 4) { printf $0" " } }' inp`

output
Code:
server_elapsed= 0.999 |select emp_no, dept_no from dept where deptname like 'IT%' ;

# 3  
Old 06-23-2006
Thanks for your help madhan. It is working fine. But I found some lines with more feilds in the first line and $7 is not validating.

For this I modified the code to
firststring=`awk -F"server_elapsed = " '/server_elapsed/ { if( $2 > 0.100 ) { print "server_elapsed="$2"|"} }' tran.log`
and the above line is working fine.

But the issue with number lines in the select statement they are not constant i.e 4.

I am getting with more like 1 ....50.

Would u please suggest me how to deal with this.

Thanks for your kind reply.
# 4  
Old 06-26-2006
How to print multiple lines

Thanks for your help on printing the input text matrixmadhan.

But I need help on multiple lines if they condition met.

-- appl = host = user = / pid = 76 elapsed = 0.000 seconds server_elapsed = 2.999
select emp_no, dept_no
from emp
where empname like 'Rob%'
;

-- appl = host = user = / pid = 76 elapsed = 0.000 seconds server_elapsed = 0.999
select emp_no, dept_no
from dept
where deptname like 'IT%'
;


As per the above input, there will be two output lines.

server_elapsed= 0.999 |select emp_no, dept_no from dept where deptname like 'IT%' ;
server_elapsed= 2.999 |select emp_no, dept_no from emp where empname like 'Rob%';

Would you please help me in printing.

I appreciate your kind reply.

Rgds,
AWK New Learner
# 5  
Old 06-28-2006
you gave the input and output...

i am not clear with the requirement you request ..

could you please clarify ?

(i dont have good grasping skills)
# 6  
Old 06-28-2006
Quote:
Originally Posted by newlearner
Thanks for your help madhan. It is working fine. But I found some lines with more feilds in the first line and $7 is not validating.

For this I modified the code to
firststring=`awk -F"server_elapsed = " '/server_elapsed/ { if( $2 > 0.100 ) { print "server_elapsed="$2"|"} }' tran.log`
and the above line is working fine.

But the issue with number lines in the select statement they are not constant i.e 4.

I am getting with more like 1 ....50.

Would u please suggest me how to deal with this.

Thanks for your kind reply.
here it is,
i should have thought earlier
Code:
#! /usr/bin/ksh

firststring=`awk -F"=" '/server_elapsed/ { if( $7 > 0.100 ) { print   server_elapsed="$7"|"} }' inp`
val=`awk -F"=" '/server_elapsed/ { if( $7 > 0.100 ) { print NR } }' inp`
echo $firststring`awk -F"=" 'BEGIN{} { if(NR > '$val' && $0 !~ /^;/ ) { printf $0" " } } END{ printf ";" }' inp`

exit 0

# 7  
Old 06-28-2006
Thanks for your help matrix.

I am getting the following error, would you please help me on this.

Syntax Error The source line is 1.
The error context is
BEGIN{} { if(NR > >>> 1 <<<
awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.
awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.
awk: 0602-540 There is a missing } character.
awk: 0602-540 There is a missing ) character.
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

awk online to exclude rows

Hello, I have 3 columns like shown below: 1 1800 1900 2 1765 1900 3 1654 2054 4 1326 1499 5 1540 1765 I want only those rows where column 2 and column 3's values don't fall within 1800-1900 both inclusive. My output should only be: 4 1326 1499 5 1540 1765 Is there a quick awk... (3 Replies)
Discussion started by: Gussifinknottle
3 Replies

2. Shell Programming and Scripting

Awk: Print count for column in a file using awk

Hi, I have the following input in a file & need output as mentioned below(need counter of every occurance of field which is to be increased by 1). Input: 919143110065 919143110065 919143110052 918648846132 919143110012 918648873782 919143110152 919143110152 919143110152... (2 Replies)
Discussion started by: siramitsharma
2 Replies

3. Shell Programming and Scripting

Awk problem: How to express the single quote(') by using awk print function

Actually I got a list of file end with *.txt I want to use the same command apply to all the *.txt Thus I try to find out the fastest way to write those same command in a script and then want to let them run automatics. For example: I got the file below: file1.txt file2.txt file3.txt... (4 Replies)
Discussion started by: patrick87
4 Replies

4. Shell Programming and Scripting

How do I get awk to print a " in it's print part?

The line is simple, use " '{ print $1"]"$2"\"$3THE " NEEDS TO GO HERE$4 }' I've tried \", "\, ^" and '"" but none of it works. What am I missing? Putting in the [ between $1 and $2 works fine, I just need to do the same with a ". Thanks. (2 Replies)
Discussion started by: LordJezo
2 Replies

5. UNIX for Dummies Questions & Answers

Is there online help for awk programming

Can anybody please supply me with a good url to get online help to awk programming, with good examples. Yes I've taken that big step in trying to master 'awk' after being able to avoid it for the last couple of years :-) Failing that, is there any good books I can get instead. Many thanks... (4 Replies)
Discussion started by: cfoxwell
4 Replies
Login or Register to Ask a Question