¿Cómo agregar a la primera línea de un archivo?

¿Cómo agregar a la primera línea de un archivo?

¿Cómo puedes usar sed para reemplazar toda la primera línea de un archivo con esa primera línea más algo de texto adicional? Por ejemplo, ¿cómo puedo agregar -fooa un archivo que contiene solo una línea?

testfileel contenido comienza:

some-text

testfilefinal del contenido:

some-text-foo

Respuesta1

¿Cómo agregar a la primera línea de un archivo?

¿Cómo puedes usar sed para reemplazar toda la primera línea de un archivo con esa primera línea más algo de texto adicional?

Aquí hay otra forma de agregar una cadena al final de la línea número 1 con SED en Windows y luego convertirla nuevamente al formato DOS para caracteres EOL, es decir, CRLF en lugar de LF...

Primer comando (agregue caracteres -foosolo al final de la primera línea)

SED -i "1 s|$|-foo|" "C:\Path\testfile.txt"

Segundo comando (convertir EOL nuevamente en avance de línea de retorno de carro)

SED -i "s/$/\r/" "C:\Path\testfile.txt"

Respuesta2

sed '1{s/$/-foo/}' file

1 para la primera línea, puede usarlo num,numpara asignar un rango, por ejemplo, 3,5 es cambiar la línea 3 a la línea 5. s para sustituir, $ significa el final de la línea. Si desea cambiar el archivo de inmediato, use -i el parámetro; de todos modos, úselo con precaución.

awk 'FNR==1{print $0 "-foo";}' file(s)

awk es más potente, pero no tiene el parámetro -i para cambiar el archivo de inmediato.

Respuesta3

Puedes hacer esto con

sed -i '1!b;s/$/\-foo/g' testfile

Esto toma el archivo, mira solo la primera línea (1!b;), busca el final de la línea ($) y lo reemplaza con la cadena que desea.

información relacionada