sgrep (structured grep) is a tool for searching and indexing text,
SGML,XML and HTML files and filtering text streams using structural
criteria. The data model of sgrep is based on regions, which are
nonempty substrings of text. Regions are typically occurrences of
constant strings, SGML-tags, or meaningful text elements, which
are recognizable through some delimiting strings or the builtin
SGML, XML and HTML parser. Regions can be arbitrarily long,
arbitrarily overlapping, and arbitrarily nested.

Sgrep is a convenient tool for making queries to almost any kind
of text files with some well kown structure. These include programs,
mail folders, news folders, HTML, SGML, etc... With relatively
simple queries you can display mail messages by their subject or
sender, extract titles or links or any regions from HTML files,
function prototypes from C or make complex queries to SGML files
based on the DTD of the file.

Homepage:
https://www.cs.helsinki.fi/u/jjaakkol/sgrep.html
