GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo insertar un texto al principio de un archivo?

Si el archivo es de una sola línea, puede usar:

sed 's/^/insert this /' oldfile > newfile

Si es más de una línea. uno de:

sed '1s/^/insert this /' oldfile > newfile
sed '1,1s/^/insert this /' oldfile > newfile

He incluido este último para que sepas cómo hacer rangos de líneas. Ambos "reemplazan" el marcador de línea de inicio en sus líneas afectadas con el texto que desea insertar. También puede (suponiendo que su sed es lo suficientemente moderno) use:

sed -i 'whatever command you choose' filename

para hacer la edición en el lugar.


Si desea agregar una línea al principio de un archivo, debe agregar \n al final de la cadena en la mejor solución anterior.

La mejor solución agregará la cadena, pero con la cadena, no agregará una línea al final de un archivo.

sed -i '1s/^/your text\n/' file

Usar subcapa:

echo "$(echo -n 'hello'; cat filename)" > filename

Desafortunadamente, la sustitución de comandos eliminará las líneas nuevas al final del archivo. Para conservarlos se puede utilizar:

echo -n "hello" | cat - filename > /tmp/filename.tmp
mv /tmp/filename.tmp filename

No es necesario agrupar ni sustituir comandos.


sed puede operar en una dirección:

$ sed -i '1s/^/<added text> /' file

¿Qué es este 1s mágico? ves en cada respuesta aquí? ¡Direccionamiento de línea!.

Quiere agregar <added text> en las primeras 10 líneas?

$ sed -i '1,10s/^/<added text> /' file

O puede usar Command Grouping :

$ { echo -n '<added text> '; cat file; } >file.new
$ mv file{.new,}

Linux
  1. Cómo insertar texto al comienzo de cada línea en Vim

  2. ¿Cómo agregar una nueva línea al final de un archivo?

  3. ¿Cómo insertar texto antes de la primera línea de un archivo?

  4. ¿Cómo encontrar corchetes no coincidentes en un archivo de texto?

  5. ¿Cómo el comando Sed '1!g;h;$!d' invierte el contenido de un archivo?

Cómo agregar texto al final del archivo en Linux

Cómo agregar texto al comienzo del archivo en Linux

¿Cómo puedo agregar una cadena al comienzo de cada archivo en una carpeta en bash?

¿Cómo redirigir la salida de system() a un archivo?

¿Cómo puedo anteponer una cadena al comienzo de cada línea en un archivo?

¿Cómo inserto texto en la primera línea de un archivo usando sed?