С GNU sed
аналогично awk + getline
$ sed -e '/^!!/{R file2.txt' -e 'd}' file1.txt
aaaaaa
bbbbbb
first line
second line
ccccc
ddddd
third line
R
будет выдавать строку с единицей порядок времени R
, а затем d
С perl
$ < file2.txt perl -pe '$_ = <STDIN> if /^!!/' file1.txt
aaaaaa
bbbbbb
first line
second line
ccccc
ddddd
third line
дескриптор файла $ _
строкой из стандартного ввода