2.8BSD awk question

Jeffrey W Percival jwp at uwmacc.UUCP
Thu Nov 27 05:44:22 AEST 1986


I have a text file of this form:

header
1 ...
2 ...
3 ...
header
4 ...
5 ...
6 ...

and so on... the numbered lines have other information on them,
and the same header occurs every Nth line.  I wanted to change
the frequency with which the header appears (every Mth line, say)
so I have this awk script:

		{
			if ($1 == "PKT#") {
				header = "$0"
				next
			} else {
				if ($1 % 50 == 0) {
					print ""
					print $header
				}
				print $0
			}
		}

See, when I come across a header, I just want to stash it away.
After every 50th line, I want to put that header out with a form feed.

The problem is that the string variable "header" gets assigned every line.
Instead of being a storage place for the header, it always contains
the current value of $0.  So instead of getting, for example, a form
feed and a header and then line 50, I get a form feed and 2 copies of
line 50.

Is this an awk bug?
-- 
	Jeff Percival ...!uwvax!uwmacc!sal70!jwp or ...!uwmacc!jwp



More information about the Comp.unix.questions mailing list