Below is a simple script that iterates through all Site Collections in all Web Applications within a farm and outputs a list of Site Collections that have the Publishing Feature enabled, I needed this recently during a customer engagement to help them to assess how widespread the Publishing Features were being used within their environment. Simply update the output path highlighted and run.

Add-PSSnapin Microsoft.Sharepoint.PowerShell -EA SilentlyContinue
$Output = "C:\Output.txt"
"Site Collections with the Publishing Feature enabled " + (Get-Date) > $Output
"------------------------------------------------------------------------" >> $Output
$WebApps = Get-SPWebApplication
$Feature = Get-SPFeature "PublishingSite"
Foreach ($WebApp in $WebApps) {Foreach($Site in $WebApp.Sites)
{$FeaturePresent = Get-SPFeature -Site $Site | Where {$_.DisplayName -eq $Feature.DisplayName}; if ($FeaturePresent -ne $null){$Site.URL >> $Output}}$Site.Dispose()}

Below is an example of the output.

Brendan Griffin