awk question

Art Neilson art at pilikia.pegasus.com
Thu Feb 28 20:56:20 AEST 1991


In article <62322 at eerie.acsu.Buffalo.EDU> haozhou at acsu.buffalo.edu (Hao Zhou) writes:
>I am using awk to print some selected lines from a text file. What I
>want to to is to hold off the current line until next line comes in
>and a certain condition is satisfied before printing both lines. So I
>need to store the current line in some variable as follows:
>
>	prev = 'initialization'
>	awk '{{if (condition) \
>		printf("%s \n %s \n", $prev, $0)} 
>	      {prev=$0}}'
>
>However the variable prev doesn't store the previous line. Instead the
>printf prints out twice the current line. What am I doing wrong?
>
>Thanks for any help on this problem.
>
>
>	Hao
>	
>-- 
>Internet:haozhou at acsu.buffalo.edu BITNET:haozhou%acsu.buffalo.edu at UBVM.BITNET
>UUCP: rutgers!ub!haozhou

All your curly braces are quite confusing.
This looks like what you're trying to do.

awk '
BEGIN {
	prev = 'initialization'
}
{
	if (condition)
		printf("%s \n %s \n", prev, $0)
	prev = $0
}'
-- 
Arthur W. Neilson III		| INET: art at pilikia.pegasus.com
Bank of Hawaii Tech Support	| UUCP: uunet!ucsd!nosc!pegasus!pilikia!art



More information about the Comp.unix.shell mailing list