xsltproc xmlpaths.xsl input.xml | sort --unique
xsltproc xmlpaths.xsl input.xml | sort | unique -c
find . -name "*.xml" | xargs xsltproc ~/Desktop/xmlpaths.xsl | sort --unique
Other strategy, extract and store tag names file-by-file, use parallel processing, unique tags from each file first, then concatenate and unique again.
mkdir /tmp/xsltproct find . -name ".xml" | xargs -P 8 -I FILE xsltproc --output /tmp/xslttmp/FILE.out xmlpaths.xsl FILE | sort --unique find /tmp/xslttmp/ -name ".out" | xargs -P 8 -I FILE sort --unique --output=FILE.uniq FILE find . -name "*.out.uniq" | xargs cat > cat.all sort --unique cat.all
Excellent work! You've made my day a lot easier :)