Doing this with sed requires some additional shell hype. Assuming bash, you can use
sed -i 18r<(sed '16,80!d' file1) file2
<(sed '16,80!d' file1) , sed '16,80!d' file1.
, , awk ( ), awk . :
awk 'NR == FNR { if(FNR >= 16 && FNR <= 80) { patch = patch $0 ORS }; next } FNR == 18 { $0 = patch $0 } 1' file1 file2
:
NR == FNR {
if(FNR >= 16 && FNR <= 80) {
patch = patch $0 ORS
}
next
}
FNR == 18 {
$0 = patch $0
}
1
. ;
cp file2 file2~
awk ... file1 file2~ > file2
, , .