Немає можливості вставити дані на початку файлу¹, все, що ви можете зробити, це створити новий файл, записати додаткові дані та додати старі дані. Тому вам доведеться перезаписати весь файл хоча б раз, щоб вставити перший рядок. Останній рядок ви можете додати, не переписуючи файл.
sed -i '1i\'"$FirstLine" $Filename
echo "$LastLine" >>$Filename
Крім того, ви можете об'єднати дві команди в один запуск sed.
sed -i -e '1i\'"$FirstLine" -e '$ a\'"$Lastline" $Filename
sed -iстворює новий вихідний файл, а потім переміщує його на старий файл. Це означає, що поки sed працює, є друга копія файлу, використовуючи пробіл. Цього можна уникнути, перезаписавши файл на місці , але з великими обмеженнями: рядок, який ви додаєте, повинен бути меншим за буфер sed, і якщо ваша система вийде з ладу, ви отримаєте пошкоджений файл і деякий вміст, загублений у середина, тому я настійно не рекомендую проти цього.
¹ У Linux є спосіб вставити дані у файл, але він може вставити лише цілу кількість блоків файлової системи, він не може вставляти рядки довільної довжини. Це корисно для деяких програм, наприклад, баз даних та віртуальних машин, але марно для текстових файлів.