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.