| awk ' # num.collapse |
| # Input: lines of form: string (tab) num1 [(space) num2] |
| # Output: lines of form: string (tab) fancy.num.list |
| # |
| # fancy.num.list contains items, separated by ", ", of form: num or num-num |
| # Sequence of input lines with same value of string is combined |
| # into a single output line. Each input line contributes either |
| # num or num-num to output line. |
| |
| BEGIN { FS = OFS = "\t" } |
| |
| { sub(/ /, "\\(en", $2) } # use - if there is no en dash |
| |
| $1 != p { p = $1 |
| if (NR > 1) printf "\n" |
| printf "%s\t%s", $1, $2 |
| next |
| } |
| { printf ", %s", $2 } |
| END { if (NR > 0) printf "\n" } |
| ' $* |