There are ways to find duplicate labels in complex documents that have not been mentioned in the other answers. To show how they work I will use a simple (non-complex) test case:
\documentclass{article}
\begin{document}
\section{Section 1}
\label{foo}
\section{Section 2}
\label{foo}
\end{document}
RefTeX
RefTeX can find duplicate labels with the function reftex-find-duplicate-labels which produce a list of all duplicate labels in the document. To use it simply do M-x reftex-find-duplicate-labels. When doing this on the file with the test case it opens a new buffer with the following content:
MULTIPLE LABELS IN CURRENT DOCUMENT:
Move point to label and type `r' to run a query-replace on the label
and its references. Type `q' to exit this buffer.
LABEL FILE
-------------------------------------------------------------
foo
~/test/test.tex
~/test/test.tex
Perl
As noted by Walt Mankowski one can use a Perl one-liner to find duplicate labels. The one-liner is as follows:
perl -nE 'say $1 if /(\\label[^}]*})/' *.tex | sort | uniq -c | sort -n
To use it open a terminal and cd to the directory of the document you want to check for duplicate labels in and then execute the one-liner. The output for the test case is as follows:
2 \label{foo}
Relatedly you may also want to check for unused labels.
grep "multiply defined" master.logworked like a charm for me. Thanks! – David L Dec 12 '13 at 19:26grep "multiply defined" master.log | uniqin addition? – stephanmg Oct 24 '20 at 10:45