Me sorprende que en esta vieja pregunta nadie haya mostrado el comando sed más común (y bastante simple en este caso):
$ sed -i '1s/^/new_text\
/' file_name
Que funciona en la mayoría de los depósitos y es portátil para varias versiones sed.
Si GNU sed está disponible, puede usar esto:
$ sed -i '1s/^/new_text\n' file_name
La diferencia es que GNU sed permite el uso de a \n
para una nueva línea y otros necesitan una nueva línea literal precedida por una barra diagonal inversa (que también funciona en GNU sed de todos modos).
Si se $'…'
está utilizando un shell que acepta la sintaxis, puede insertar la nueva línea directamente, de modo que sed vea que la nueva línea ya está allí:
$ sed -i $'1s/^/new_text\\\n/' file_name
Que funciona para más versiones sed.