Я не знаю, что такое sed, но в Perl вы могли бы сделать это (не проверяя мою голову):
perl -0777 -pe 'BEGIN{local $/ = undef; open FROM, "<", shift @ARGV; $from = <FROM>; open TO, "<" shift @ARGV; $to = <TO>} s/\Q$from\E/$to/sog' file1 file2 bigger-file > new-bigger-file
Если вам интересно попробовать Perl, я могу попробовать его для вас завтра.
Но он высасывает весь больший файл в память, потому что игнорирует разрывы строк, так что ваш текст поиска может занимать несколько строк. Это означает, что он использует довольно много памяти!
В этом ответе предполагается, что поисковый файл представляет собой одну длинную строку поиска по нескольким строкам, которая должна совпадать полностью, а не несколько отдельных строк поиска, любая из которых может быть сопоставлена.