summaryrefslogtreecommitdiff
path: root/sys/src/9/port/mkextract
blob: 514d36ebc9d29a01bf0bed99d45014095e16cf9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/rc

switch($#*){
case [012]
	echo usage: mkextract [-u] field n file... >[1=2]
	exit 1
}

switch($1){
case -u
	flag=$1; shift
case *
	flag=''
}

field=$1
n=$2
shift 2

fn select {
	awk '

		BEGIN			{ doprint=0 }
		/^$/			{ next }
		/^#/			{ next }
		doprint && /^[^	]/	{ doprint=0 }
		doprint			{ print $'^$n^' }
		$1 ~ "^'^$field^'$"	{ doprint=1; next }
	' $*
}

switch($flag){
case -u
	select $* | sort -u
case *
	select $*
}