Blame


1 aa83d772 2004-05-17 devnull awk ' # num.collapse
2 aa83d772 2004-05-17 devnull # Input: lines of form: string (tab) num1 [(space) num2]
3 aa83d772 2004-05-17 devnull # Output: lines of form: string (tab) fancy.num.list
4 aa83d772 2004-05-17 devnull #
5 aa83d772 2004-05-17 devnull # fancy.num.list contains items, separated by ", ", of form: num or num-num
6 aa83d772 2004-05-17 devnull # Sequence of input lines with same value of string is combined
7 aa83d772 2004-05-17 devnull # into a single output line. Each input line contributes either
8 aa83d772 2004-05-17 devnull # num or num-num to output line.
9 aa83d772 2004-05-17 devnull
10 aa83d772 2004-05-17 devnull BEGIN { FS = OFS = "\t" }
11 aa83d772 2004-05-17 devnull
12 aa83d772 2004-05-17 devnull { sub(/ /, "\\(en", $2) } # use - if there is no en dash
13 aa83d772 2004-05-17 devnull
14 aa83d772 2004-05-17 devnull $1 != p { p = $1
15 aa83d772 2004-05-17 devnull if (NR > 1) printf "\n"
16 aa83d772 2004-05-17 devnull printf "%s\t%s", $1, $2
17 aa83d772 2004-05-17 devnull next
18 aa83d772 2004-05-17 devnull }
19 aa83d772 2004-05-17 devnull { printf ", %s", $2 }
20 aa83d772 2004-05-17 devnull END { if (NR > 0) printf "\n" }
21 aa83d772 2004-05-17 devnull ' $*