|
|
The following program generates form letters, using a template stored in a file called form.letter:
This is a form letter. The first field is $1, the second $2, the third $3. The third is $3, second is $2, and first is $1.and replacement text of this form:
field 1|field 2|field 3 one|two|three a|b|c
The BEGIN action stores the template in the array line; the remaining action cycles through the input data, using gsub to replace template fields of the form $n with the corresponding data fields.
BEGIN { FS = "|" while (getline <"form.letter") line[++n] = $0 } { for (i = 1; i <= n; i++) { s = line[i] for (j = 1; j <= NF; j++) gsub("\\$"j, $j, s) print s } }
In all such examples, a prudent strategy is to start with a small version and expand it, trying out each aspect before moving on to the next.