xref: /plan9/sys/src/9/port/mkextract (revision 6a9fc400c33447ef5e1cda7185cb4de2c8e8010e)
13e12c5d1SDavid du Colombier#!/bin/rc
23e12c5d1SDavid du Colombier
33e12c5d1SDavid du Colombierswitch($#*){
43e12c5d1SDavid du Colombiercase [012]
53e12c5d1SDavid du Colombier	echo usage: mkextract [-u] field n file... >[1=2]
63e12c5d1SDavid du Colombier	exit 1
73e12c5d1SDavid du Colombier}
83e12c5d1SDavid du Colombier
93e12c5d1SDavid du Colombierswitch($1){
103e12c5d1SDavid du Colombiercase -u
113e12c5d1SDavid du Colombier	flag=$1; shift
123e12c5d1SDavid du Colombiercase *
133e12c5d1SDavid du Colombier	flag=''
143e12c5d1SDavid du Colombier}
153e12c5d1SDavid du Colombier
163e12c5d1SDavid du Colombierfield=$1
173e12c5d1SDavid du Colombiern=$2
183e12c5d1SDavid du Colombiershift 2
193e12c5d1SDavid du Colombier
203e12c5d1SDavid du Colombierfn select {
213e12c5d1SDavid du Colombier	awk '
223e12c5d1SDavid du Colombier
233e12c5d1SDavid du Colombier		BEGIN			{ doprint=0 }
243e12c5d1SDavid du Colombier		/^$/			{ next }
253e12c5d1SDavid du Colombier		/^#/			{ next }
263e12c5d1SDavid du Colombier		doprint && /^[^	]/	{ doprint=0 }
273e12c5d1SDavid du Colombier		doprint			{ print $'^$n^' }
28*6a9fc400SDavid du Colombier		$1 ~ "^'^$field^'$"	{ doprint=1; next }
293e12c5d1SDavid du Colombier	' $*
303e12c5d1SDavid du Colombier}
313e12c5d1SDavid du Colombier
323e12c5d1SDavid du Colombierswitch($flag){
333e12c5d1SDavid du Colombiercase -u
343e12c5d1SDavid du Colombier	select $* | sort -u
353e12c5d1SDavid du Colombiercase *
363e12c5d1SDavid du Colombier	select $*
373e12c5d1SDavid du Colombier}
38