Finding specific things
A folder of a hundred PDFs and a phrase you remember — three tools, depending on whether the PDFs have real text.
PDFs with a text layer are content-indexed:
mdfind -onlyin ~/Documents/Papers "tidal subsidy"
Instant, because the text is in the index. Works for born-digital PDFs and OCR'd scans; fails silently on image-only scans.
brew install pdfgrep
pdfgrep -r "tidal subsidy" ~/Documents/Papers
pdfgrep -r -n "clause 7" . # -n shows page numbers
pdfgrep -r -i -C 2 "indemnity" # case-insensitive, 2 lines context
Slower than Spotlight (it reads each file) but needs no index and shows page numbers — better for "which page in which contract".
mdimport -d2 -t scan.pdf | grep kMDItemTextContent | head
Empty means image-only — nothing to search until OCR.
brew install ocrmypdf
ocrmypdf scan.pdf scan-searchable.pdf
Adds an invisible text layer over the images, leaving the pages looking identical but now searchable by every tool above. Batch a folder:
for f in *.pdf; do ocrmypdf --skip-text "$f" "ocr/$f"; done
--skip-text leaves already-text PDFs alone.
For a research or contract archive: OCR everything once (so scans join the searchable set), then rely on Spotlight's content index for instant lookup, with pdfgrep as the page-precise fallback. That combination makes a decade of PDFs answer "which one said this" in seconds.
Spotlight/mdfind for PDFs with a text layer; pdfgrep for on-demand search with page numbers. Image-only scans need OCR first.
ocrmypdf adds an invisible text layer: ocrmypdf scan.pdf out.pdf. Every search tool then finds its text.
Everywhere keeps track of every file on your Mac, including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Version 2.20.3 · macOS 13+ · 4.7 MB · notarised