GNU/Linux >> Tutoriales Linux >  >> Linux

Bash:Agregar al archivo

En Bash, hay varias formas de agregar texto a un archivo. Este artículo explica algunos de ellos.

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

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

La redirección le permite capturar la salida de un comando y enviarla como entrada a otro comando o archivo. El >> El operador de redirección agrega la salida a un archivo dado.

Hay una serie de comandos que puede usar para imprimir texto en la salida estándar y redirigirlo al archivo, con echo y printf siendo los más utilizados.

Para agregar texto a un archivo, especifique el nombre del archivo después del operador de redirección:

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

Cuando se usa con -e opción el echo El comando interpreta los caracteres de escape de barra invertida, como nueva línea \n :

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

Para producir resultados más complejos, use printf comando 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 usar el documento Here (Heredoc). Es un tipo de redirección que le permite pasar varias líneas de entrada a un comando.

Por ejemplo, puede pasar el contenido al cat comando y añádalo 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 la date comando:

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

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

Agregar a un archivo usando el tee Comando #

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

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

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

Si no quieres tee para escribir 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 la tee comando sobre el >> el operador es ese tee le permite agregar texto a varios archivos a la vez y escribir en archivos propiedad de otros usuarios junto con sudo .

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

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

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

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

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

Conclusión #

En Linux, para agregar texto a un archivo, use el >> operador de redirección o tee comando.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


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

  2. ¿Se puede conectar un script Bash a un archivo?

  3. El Bash'?

  4. Bash Script:¿Comprobar si un archivo es un archivo de texto?

  5. ¿Cómo agregar a un archivo como sudo?

Comando de fuente Bash

Cómo redirigir stderr a stdout en Bash

Sustitución de cadena en Bash

35 ejemplos de secuencias de comandos Bash

Bash Scripting - Declaraciones condicionales

Script Bash (III)