He estado buscando sed
comando para agregar texto a un archivo en una línea específica.
Esto funciona agregando texto después de la línea 1:
sed '1 a
Pero quiero agregarlo antes línea 1. Sería:
sed '0 a
pero recibo este error:invalid usage of line address 0
.
¿Alguna sugerencia?
Respuesta aceptada:
Usa sed
inserción de (i
) opción que insertará el texto en la línea anterior.
sed '1 i
Actualización del autor de la pregunta:
Para hacerlo, edite el archivo en su lugar, con GNU sed
– Tuve que agregar el -i
opción:
sed -i '1 ianything' file
También sintaxis
sed -i '1i text' filename
Para sed no GNU
Debe presionar la tecla de retorno inmediatamente después de la barra invertida 1i
y después de first_line_text
:
sed -i '1i
first_line_text
'
También tenga en cuenta que algunos sed
no GNU implementaciones (por ejemplo, la de macOS) require un argumento para -i
bandera (use -i ''
para obtener el mismo efecto que con GNU sed
).
Para sed
implementaciones que no admiten -i
en absoluto, ejecute sin esta opción pero redirija la salida a un nuevo archivo. Luego reemplace el archivo antiguo con el archivo recién creado.