21 lines
608 B
Text
21 lines
608 B
Text
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" }
|
|
' $*
|