How do you disable modules in bulk via Drush matching a specific pattern? Currently I have to disable all of the ubercart modules in bulk, but there are too many of them to do it one at a time via the modules page. And doing it via drush doesn't disable every module related to ubercart sometimes. Is there a quick way to disable these modules via Drush in bulk matching a specific pattern?
Here's the drush recipe combined with a few other commands to disable modules in bulk:

drush pm-list | ack uc_ | ack Enabled | grep "\((.*)\)" | awk -F'(' '{print $2}' | awk -F')' '{print $1}' | xargs -i drush dis '{}' -y


Broken down:


drush pm-list lists out all of your modules
ack uc_ returns only the lines matching "uc_"
ack Enabled returns only the enabled modules
grep "\((.*)\)" matches the words in parentheses 
awk -F'(' '{print $2}' breaks up the line starting with the ( character
awk -F')' '{print $1}' breaks up the line starting with the ) character
xargs -i drush dis '{}' -y runs the returned result into drush disable command with the -y parameter for yes to all. 




Thanks to greg_1_anderson, I updated it to be a bit shorter. 

drush pm-list --status=enabled --pipe | grep 'uc_' | xargs -i drush pm-disable '{}' -y