Cómo agregar a un archivo con Bash - Agregar

9 feb 2024 3 min di lettura
Cómo agregar a un archivo con Bash - Agregar
Indice dei contenuti

Introducción

Al trabajar con Bash, puede haber ocasiones en las que necesite agregar texto a un archivo. Afortunadamente, existen varias formas de realizar esta tarea. Este artículo explica algunos de ellos.

Para agregar texto a un archivo, debe tener permisos de escritura sobre él. De lo contrario, recibirá un error de permiso denegado.

Agregar a un archivo usando el operador de redirección (>>)

La redirección le permite tomar el resultado de un comando y enviarlo como entrada a otro comando o archivo. El operador de redirección >> agrega la salida a un archivo determinado.

Hay varios comandos que puede utilizar para imprimir texto en una salida estándar y redirigirlo al archivo. Los dos comandos más utilizados para este propósito son echo y printf.

Para agregar texto a un archivo, ejecute el comando que imprime el texto y especifica el nombre del archivo después del operador de redirección:

echo "this is a new line" >> file.txt

Cuando se usa con la opción -e, el comando echo interpreta los caracteres de barra invertida como líneas nuevas \n:

echo -e "this is a new line \nthis is another new line" >> file.txt

Para producir una salida más compleja, puede usar el comando printf, que le permite especificar el formato de la salida:

printf "Hello, I'm %s.\n" $USER >> file.txt

Otra forma de agregar texto a un archivo es utilizar el documento Aquí (Heredoc). Es un tipo de redirección que le permite pasar varias líneas de entrada a un comando.

Por ejemplo, puedes pasar el contenido al comando cat y agregarlo a un archivo:

cat << EOF >> file.txt
 The current working directory is: $PWD
 You are logged in as: $(whoami)
 EOF

Puede agregar la salida de cualquier comando a un archivo. Aquí hay un ejemplo con el comando date:

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

Al agregar un archivo mediante una redirección, tenga cuidado de no utilizar el operador > para sobrescribir un archivo existente importante.

Agregar a un archivo usando el comando tee

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

De forma predeterminada, el comando tee sobrescribe el archivo especificado. Para agregar la salida al archivo use tee con la opción -a ( --append ):

echo "this is a new line" | tee -a file.txt

Si no desea tee en la salida estándar, rediríjalo a /dev/null:

echo "this is a new line" | tee -a file.txt >/dev/null

La ventaja de usar el comando tee sobre >> es que tee le permite agregar texto a múltiples archivos simultáneamente y escribir en archivos propiedad de otros usuarios junto con sudo.

Para agregar texto a un archivo para el cual no tiene permisos de escritura, antepóngale sudo como tee que se muestra a continuación:

echo "this is a new line" | sudo tee -a file.txt

tee recibe el resultado del comando echo, eleva los permisos de sudo y escribe en el archivo.

Para agregar texto a más de un archivo, especifique los archivos como argumentos para el comando tee:

echo "this is a new line" | tee -a file1.txt file2.txt file3.txt

Conclusión

Si está trabajando con Linux y necesita agregar texto a un archivo existente, tiene un par de opciones. Una forma es utilizar el operador de redirección >>, que agregará el texto al final del archivo sin sobrescribir ningún contenido existente. Otra opción es usar el comando tee, que no sólo agrega el texto al archivo, sino que también lo muestra en la pantalla a medida que se agrega.

Si tienes alguna pregunta o comentario, no dudes en dejar un comentario.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.