shithub: 9intro

ref: 2b99422480d596ebc26921c87c6bb81a07949f3e
dir: /idx/num.collapse/

View raw version
#!/bin/rc
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" }
' $*