# bibkey.sed
#
# Goes with bin/bibkey - look for a word in the keyword entry 
#
# David Kotz (dfk@cs.dartmouth.edu)
#
# On stdin, we get a lowercased bibtex file with comments stripped.
#
# On stdout, we produce a list of line numbers that are the starting
# line number of each reference, and the text of all "keyword"
# entries on separate lines.

# the idea is to get @ line numbers and all keywords
# @ entry
/^[ 	]*@.*/=
# one-line keyword entry
s/[ 	]*keyword[ 	]*=[ 	]*"\(.*\)".*/\1/p
t 
# start of multi-line keyword entry
s/[ 	]*keyword[ 	]*=[ 	]*"\(.*\)/\1/
t partial
b
# Handle multi-line keyword entry: save this line, repeatedly add
# lines until close quote forces output
:partial
N
s/\(.*\n.*\)".*/\1/
t done
b partial
:done
s/\n/ /g
p