blob: 47203f522a8507f5146dbd9dbea196168dee31f2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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" }
' $*
|