#!/usr/bin/awk -f # $Id: db-get-id,v 1.1 2002/09/04 20:49:22 rajo Exp $ BEGIN { last_tag = ""; printf "# id-name\tfilename\tid-type\n"; } #/^[^<]+"); # first_tag = a[1]; # #printf "first_tag = '%s'\n", first_tag; #} { if (last_tag != "") { str = sprintf("> XX <%s %s", last_tag, $0); # join last notcompleted tag last_tag = ""; # last_tag was used, make it empty } else str = sprintf("> ZZ %s", $0); if (str ~ /<[^>]*$/) { n = split(str, a, "<"); last_tag = a[n]; sub(/<[^>]+$/, "", str); # remove last notcompleted tag from line } #printf "str = '%s'\n", str; sub(/>[^>]*$/, "> YY <", str); n = split(str, a, ">[^<>]*<"); for (i = 1; i <= n; i++) { if (a[i] ~ /id=['"]/) { # SGML tag with id="..." m = split(a[i], b, "[ \t]+"); for (j = 1; j <= m; j++) { if (b[j] ~ /id=['"]/) { sub(/^id=['"]/, "", b[j]); sub(/['"]$/, "", b[j]); printf "%s\t%s\t%s\n", b[j], FILENAME, b[1]; } } } } } # vim: ft=awk cindent