Первая строка должна быть #!/bin/sh
, а не #!/usr/local/bin/perl
. Вы ошибаетесь, что это скрипт Perl; это скрипт оболочки, который вызывает Perl.
Это также не сработает, потому что $ search и $ replace не будут интерполироваться внутри одинарных кавычек. Попробуйте одинарные кавычки внутри двойные кавычки.
Или еще лучше, попробуйте мой массовый поиск / замена Perl-скрипта . Я держу сценарий на чистом Perl для этого, потому что, несмотря на то, что массовый поиск / замена опасен, вам не нужно многоуровневое толкование метасимволов оболочки, превращающее его из опасного в абсолютно смертельный.