Для этого вам не нужно sed
. Достаточно использоватьcat
:
cat file.bak >>file.php
Это добавит содержимое file.bak
в самый конец file.php
.
Программа sed
r file.php
будет выводить содержимое file.php
на стандартный вывод для каждой строки ввода . Если file.bak
содержит несколько строк, вы получите несколько копий file.php
.
Это не то, что вам нужно, если вы хотите использовать sed
для добавления данных.
Вместо этого, игнорируя тот факт, что cat
здесь работает лучше ,
sed '$r file.bak' file.php
Это не будет читать file.bak
до тех пор, пока не будет достигнута самая последняя строка file.php
. Это приводит к объединению содержимого двух файлов (, сначала будет содержимое file.php
, а затем содержимоеfile.bak
).
Чтобы записать результат обратно в file.php
, вы можете либо перенаправить вывод в новый файл, а затем переместить его на место (безопасным способом):
sed '$r file.bak' file.php >tmpfile && mv tmpfile file.php
или вы можете использовать параметр -i
, который некоторые реализации sed
имеют (небезопасный способ):
sed -i '$r file.bak' file.php