1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/usr/bin/awk -f # dirty xml reading is more fun BEGIN { FS = "</hg>" } { printdefs($1, $2); } function printdefs(word, defs) { n = split(defs, array, "<def>"); for(i=0; i<=n; i++) { if(array[i] != "") { printf(":%s: %s\n", word, array[i]); } } }