Інші рішення змішують синтаксиси регулярних виразів. Щоб використовувати шаблони perl / PCRE як для пошуку, так і для заміни та обробки лише відповідних файлів, це працює досить добре:
grep -rlZPi 'match1' | xargs -0r perl -pi -e 's/match2/replace/gi;'
де match1і match2зазвичай ідентичні, але match1можуть бути спрощені для видалення більш вдосконалених функцій, які стосуються лише підстановки, наприклад, групи захоплення.
Переклад: grepрекурсивно та список файлів, що відповідають цьому шаблону PCRE, розділені нулем для захисту будь-яких спеціальних символів у імені файлу, а потім передайте ті назви файлів, до xargsяких очікує розділений за нулем список, але нічого не зробить, якщо не буде отримано імен, і дістатися perlдо ліній-замінників, де знайдено відповідність.
Додайте Iперемикач, grepщоб ігнорувати бінарні файли. Для відповідності регістру відмітьте iперемикач grepі iпрапор, приєднаний до виразу заміни, але не сам iперемикач perl.