Это не проверено, но будет достаточно близко к тому, что вам нужно:
sed -e "s/INSERT_HERE1/`cat file1.txt`/" -e "s/INSERT_HERE2/`cat file2.txt`/" <file >file.out
Однако он не будет правильно обрабатывать файл с косыми чертами, поэтому вам, возможно, придется немного его настроить..
Однако я бы порекомендовал Perl.Примерно так:
#!/usr/bin/perl -w
my $f1 = `cat file1.txt`;
my $f2 = `cat file2.txt`;
while (<>) {
chomp;
s/INSERT_HERE1/$f1/;
s/INSERT_HERE2/$f2/;
print "$_\n";
}
Предполагается, что INSERT_HERE1 и INSERT_HERE2 могут появляться только один раз на строку, и что file1.txt
не включает в себя текст INSERT_HERE2 (хотя это не трудно исправить).Используйте как это:
./script <file >file.out