GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo agregar texto al comienzo del archivo en Linux

Los usuarios de la línea de comandos de Linux están familiarizados con el concepto de operadores de redirección, que pueden escribir la salida en un archivo o leer la entrada de un archivo.

El operador '>' escribe la salida en un archivo nuevo o en un archivo existente; en cuyo caso borra todo lo que estaba previamente presente en el archivo. El operador '>>' por otro lado, agrega la salida al final de un archivo existente. Sin embargo, no hay un operador dedicado para escribir texto nuevo al principio de un archivo.

Hoy veremos dos formas de agregar texto al principio de un archivo en Linux:una con una solución alternativa y otra con un comando.

Nota :Es un buen enfoque hacer primero una copia de seguridad del archivo original y luego agregar el nuevo texto al archivo original. De esta manera, si ocurre algún error al usar los comandos, siempre podemos restaurar el archivo de respaldo. P.ej. Simplemente puede copiar un archivo llamado 'file1 ' a otro archivo llamado 'file1_bkp ' y luego agregue el texto al original, es decir, 'file1 '.

Agregar texto al principio del archivo usando los comandos echo y cat

Como sabrá, el comando echo imprime todo lo que se pasa como argumento a la salida, mientras que el comando cat imprime el contenido de un archivo en la salida.

Así podemos pasar el nuevo texto a añadir a echo , pase el archivo a un gato, combine y escriba la salida en el archivo. Esto se puede hacer de la siguiente manera:

$ x=`echo "New Text"; cat filename`
$ echo "$x" > filename

Básicamente, estamos combinando el texto nuevo y los contenidos existentes del archivo, y almacenando los nuevos contenidos en una variable. Luego, simplemente generamos la variable y la redirigimos al mismo archivo.

$ cat samplefile.txt
$ x=`echo "Name: John"; cat samplefile.txt`
$ cat samplefile.txt

Como puede ver arriba, el nuevo texto se agregó en una nueva línea al comienzo del archivo. Para agregar el texto al comienzo de la primera línea existente, use -n argumento de eco.

$ x=`echo -n "New Text"; cat filename`
$ echo "$x" > filename
Tenga en cuenta que aunque Bash o muchos otros shells no tienen un límite en el tamaño de una variable, sin embargo, el tamaño puede estar limitado según el entorno y la configuración del sistema. Por lo tanto, podría haber un escenario en el que 'samplefile.txt ' es un archivo que contiene una enorme cantidad de datos, y la variable no puede almacenarlos todos.

Agregar texto a la primera línea del archivo usando el comando sed

sed (abreviatura de 'Stream Editor ‘) es un editor de línea de comandos en Linux, que se usa para realizar operaciones como escribir texto en un archivo, buscar y reemplazar, etc.

sed es un comando complejo con muchas opciones para editar archivos de varias maneras. Usaremos características particulares de sed para agregar texto al comienzo de un archivo.

Ejecute lo siguiente para insertar texto en una nueva línea al principio.

$ sed -i '1i New Text' filename

El -i el argumento le dice a sed para modificar el propio archivo. Sin él, sed crea automáticamente una copia del archivo y realiza todas las modificaciones en la copia.

La cadena ‘1i New Text’ significa:‘insertar’ la cadena 'Nuevo texto' en el '1º' línea.

$ cat samplefile.txt
$ sed -i '1i Introduction' samplefile.txt
$ $ cat samplefile.txt

Nuevamente, esto es agregar el nuevo contenido en una nueva línea al principio. Para agregar texto nuevo en la línea existente, ejecute:

$ sed -i '1s/^/New Text/' filename

Básicamente, el símbolo del exponente (‘^’) significa una cadena nula. El '1' al principio significa que sed debe considerar la cadena nula al comienzo de la línea 1 y el 's' es un sed comando, para reemplazar una cadena. Aquí, la cadena nula se reemplaza por 'Texto nuevo ‘.

$ cat samplefile.txt
$ sed -i '1s/^/Person/' samplefile.txt
$ cat samplefile.txt
Conclusión

Aprendimos dos formas simples pero pegadizas de agregar texto nuevo al comienzo de un archivo en Linux. Por supuesto, la forma obvia de hacer esto, si se va a hacer manualmente, es modificar el archivo con un editor de archivos. Sin embargo, en un script, se pueden usar los métodos discutidos aquí.

¡Gracias por leer y háganos saber sus pensamientos en los comentarios a continuación!


Linux
  1. Cómo agregar texto al final del archivo en Linux

  2. Cómo usar el comando Tar en Linux

  3. Cómo agregar números de línea a archivos de texto en Linux

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

  5. Cómo agregar el archivo .so a java.library.path en Linux

Cómo usar el comando de cabeza de Linux

Cómo usar el comando diff de Linux

Cómo crear un archivo en Linux

Cómo crear directorios desde un archivo de texto en Linux

Cómo descomprimir los archivos gz en Linux

¿Cómo usar el comando Gzip en Linux?