On Windows try for the fun it:
Get-ChildItem -Path HKLM:\SYSTEM\ControlSet001\Services\DeviceAssociationService\State\Store\ | Select-String -Pattern Bluetooth
Now look at how it parallelize the request by default, and how it returned you several columns of data per line.
Want a regex?
Get-ChildItem -Path HKLM:\SYSTEM\ControlSet001\Services\DeviceAssociationService\State\Store\ | Select-String -Pattern Bluetooth | ForEach-Object { $_ -replace 'HK.*-','' -replace ':', ''}
Want a CSV? Add "| ConvertTo-Csv"
Let's do another, to filter only devices (a named property)
Get-PnpDevice -Class 'Bluetooth' -PresentOnly | Where-Object HardwareID -match 'DEV_' | Get-PnpDeviceProperty | ConvertTo-Csv
Now I'm learning how to do better things like lambdas on the pipeline
PowerShell is weird the first time, but it's so well made it'll give you hours and hours of fun :)