# usage: awk -f inc.awk *.html function nodot(name) { if(name ~ /^\.\//){ name=substr(name,3); } return name; } BEGIN { for(i=1;i/ { match($0, /.*<\/title>/); t=substr($0,RSTART+7,RLENGTH-7-8); match(t, / — /); title[nodot(FILENAME)]=substr(t,1,RSTART-1); } /<a href=/ { if(match($0, /<a href="[a-zA-Z0-9].*\.html">/)){ l=substr($0,RSTART+9,RLENGTH-9-2); incoming[l][nodot(FILENAME)]=1; if(!(l in files)) { printf("warning: redlink '%s' in '%s'\n", l, nodot(FILENAME)); } } } END { for(f in incoming){ split(f,fbase,"."); fname=fbase[1] "-inc.htm"; print "<ul>" > fname; for(l in incoming[f]) { printf("\t<li><a href=\"%s\">%s</a></li>\n",l,title[l]) >> fname; } printf "</ul>\n" >> fname; } }