Cómo añadir texto a un archivo usando Bash

Suraj Joshi 30 enero 2023
  1. Agregar texto a un archivo con el operador de redirección >>
  2. Añade el texto a un archivo con el comando tee
Cómo añadir texto a un archivo usando Bash

Podemos añadir texto a un archivo usando el operador Redirection (>>), y el comando tee.

Debemos asegurarnos de que tenemos suficientes permisos para añadir texto al archivo. Si no tenemos suficientes permisos, podemos obtener el error de permiso denegado.

Agregar texto a un archivo con el operador de redirección >>

El operador de redirección >> obtiene la salida de los comandos bash y agrega la salida a otro archivo. Hay muchas maneras de imprimir el texto a la salida estándar, sin embargo echo y printf son los comandos más populares.

Para añadir el texto a un archivo, escribimos un comando para imprimir el texto usando cualquiera de los comandos de salida y luego añadimos el operador >> al comando seguido del nombre del archivo donde el texto necesita ser añadido.

echo "Hello World" >> abc.txt

Esto añadirá el texto Hello World al final del archivo abc.txt.

Si el archivo no existe en el directorio de trabajo actual, el comando creará un archivo vacío y escribirá el texto Hello World en el archivo.

Para interpretar los caracteres de la secuencia de escape como \n, usamos la opción -e con el comando echo.

echo -e "Hello World! \nThis is DelftStack" >> abc.txt

Esto añadirá el texto

Hello World!
This is DelftStack

al archivo abc.txt.

Para verificar si el texto ha sido agregado o no, podemos usar el comando cat para ver el contenido del archivo.

cat abc.txt

Resultado:

Hello World! 
This is DelftStack

Si el texto ha sido añadido, podemos ver el texto al final del archivo.

Si queremos un texto más formateado, podemos usar el comando printf para producir una salida más formateada.

printf "The path of shell interpreter is %s\n" $SHELL >> abc.txt

Añade el texto The path of shell interpreter is /bin/bash al archivo abc.txt.

Añade el texto a un archivo con el comando tee

tee es una utilidad de línea de comandos que toma la entrada de la entrada estándar y la escribe en uno o más archivos y la salida estándar simultáneamente.

Por defecto, el comando tee sobrescribe el contenido de los archivos. Para simplemente añadir el texto al final del archivo, usamos la opción -a o --append con el comando.

echo "Hello World!" | tee -a abc.txt

Resultado:

Hello World!

Añade Hello World! al archivo abc.txt y también escribe el texto en la salida estándar de la terminal.

Si obtenemos un error de permiso denegado mientras se añade el texto a un archivo, podemos añadir la palabra clave sudo antes del comando tee.

echo "Hello World!" | sudo tee -a abc.txt

Si no queremos ver la salida estándar, podemos redirigir la salida a /dev/null.

 echo "Hello World!"  | tee -a abc.txt >/dev/null

Una ventaja de usar el comando tee es que podemos escribir el texto en varios archivos simultáneamente usando el comando tee. Para escribir el texto en múltiples archivos, podemos simplemente listar todos los archivos separados por un espacio.

echo "Hello World!" | sudo tee -a abc.txt backup.txt

Añade el texto a ambos archivos abc.txt y backup.txt simultáneamente.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn