Если я понимаю правильно, возможно, что-то как:
awk '{getline repl < "second-file"; sub(/regexp/, repl); print}' < first-file
Или если regexp
может появиться несколько раз на строку или не на каждой строке:
perl -pe 's/regexp/chomp($r=<STDIN>);$r/ge' first-file < second-file
perl -pe '
BEGIN {
open IN, "<replacements" or die $!;
}
s/pattern/
$tmp = <IN>;
chomp $tmp;
$tmp
/xe;
' filename