Гораздо лучше отфильтровать результат поиска с помощью [ef] grep. Почему?
Потому что вы можете использовать шаблон grep в качестве аргумента или читать его из конфига или soo. Гораздо проще написать: grep "$ PATTERN" как конструирующий аргументы long find с '-o'. (ofc, здесь есть ситуации, когда поиск аргументов лучше), но не в вашем случае.
Стоимость - это еще один процесс. Итак, для вашего примера легко написать скрипт myscript.sh
find Sources/$1-$2 -print | egrep -i "$3" | xargs ...
Вы можете назвать это
./myscript.sh aaa bbb ".(php|rb)$"
и результат будет эквивалентен более сложному
find Sources/$1-$2 \( -iname '*.php' -o -iname '*.rb' \) | xargs ...
но
зачем? Если у вас есть bash4 +, (и shopt -s globstar
в вашем .bashrc), вы можете просто написать:
perl -pi -e '.....' Sources/aaa-bbb/**/*.{rb,php}
**
походит на find -name
.