54 lines
1019 B
Awk
54 lines
1019 B
Awk
|
# labels.awk
|
||
|
# Arnold Robbins, arnold@gnu.ai.mit.edu, Public Domain
|
||
|
# June 1992
|
||
|
|
||
|
# Program to print labels. Each label is 5 lines of data
|
||
|
# that may have blank lines. The label sheets have 2
|
||
|
# blank lines at the top and 2 at the bottom.
|
||
|
|
||
|
BEGIN { RS = "" ; MAXLINES = 100 }
|
||
|
|
||
|
function printpage( i, j)
|
||
|
{
|
||
|
if (Nlines <= 0)
|
||
|
return
|
||
|
|
||
|
printf "\n\n" # header
|
||
|
|
||
|
for (i = 1; i <= Nlines; i += 10) {
|
||
|
if (i == 21 || i == 61)
|
||
|
print ""
|
||
|
for (j = 0; j < 5; j++) {
|
||
|
if (i + j > MAXLINES)
|
||
|
break
|
||
|
printf " %-41s %s\n", line[i+j], line[i+j+5]
|
||
|
}
|
||
|
print ""
|
||
|
}
|
||
|
|
||
|
printf "\n\n" # footer
|
||
|
|
||
|
for (i in line)
|
||
|
line[i] = ""
|
||
|
}
|
||
|
|
||
|
# main rule
|
||
|
{
|
||
|
if (Count >= 20) {
|
||
|
printpage()
|
||
|
Count = 0
|
||
|
Nlines = 0
|
||
|
}
|
||
|
n = split($0, a, "\n")
|
||
|
for (i = 1; i <= n; i++)
|
||
|
line[++Nlines] = a[i]
|
||
|
for (; i <= 5; i++)
|
||
|
line[++Nlines] = ""
|
||
|
Count++
|
||
|
}
|
||
|
|
||
|
END \
|
||
|
{
|
||
|
printpage()
|
||
|
}
|