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