Cómo escribir en un archivo en Bash

How Write File Bash



Una de las tareas esenciales que hacemos al trabajar con scripting bash es leer y escribir archivos. En esta guía, nos centraremos en cómo leer archivos en bash y cómo editarlos.

Hay varias formas de leer y escribir un archivo en bash. La forma más sencilla es utilizar los operadores> y >>.







  • > el operador sobrescribirá los datos existentes
  • >> el operador agregará datos

El formato general del uso de operadores de redirección es:



Datos> Nombre de archivo
Datos >> Nombre de archivo

Comprendamos el procedimiento de escritura en un archivo con un ejemplo:



Cómo escribir un archivo usando operadores de redirección

Como se mencionó anteriormente, el enfoque simple y directo de escribir en un archivo es usar operadores de redirección. Por ejemplo, si desea cambiar el texto de un archivo ya existente, primero cree un archivo de texto con el nombre de testfile.txt y escribe cualquier cosa en él:





Guarde el archivo de texto.



Escriba el comando mencionado a continuación en la terminal:

$ echo Sobrescribir el texto existente en el archivo> testfile.txt

Escurrir demasiado puede ser riesgoso; por lo tanto, es una buena práctica habilitar noclobber. Establecer noclobber bloquearía cualquier sobrescritura en cualquier archivo existente.

$ set –o noclobber
$ echo Sobrescribir el texto existente en el archivo> testfile.txt

Pero si desea evitar el noclobber, utilice el >| operador en lugar de > :

$ echo Sobrescribir el texto existente en el archivo> | testfile.txt

O simplemente puede desactivar noclobber:

$ set +o noclobber

Pero este comando eliminará la protección de todos los archivos.

La salida anterior indica que se ha sobrescrito el texto existente. Ahora, usemos el >> operador:

$ echo Agregar texto al archivo de texto existente >> testfile.txt

echo no siempre es ideal para usar ya que no puede formatear el texto usándolo, por lo tanto, use printf en lugar de echo para formatear el texto como se muestra en el siguiente comando:

$ printf Bienvenido n Este es un nuevo archivo de texto. > newtestfile.txt

Comprendamos el concepto con un ejemplo de script bash. Abra Vim escribiendo vim en la terminal. Si no tiene el editor Vim en su dispositivo, instálelo usando:

$ sudo apt install vim

Escriba el guión:

#! / bin / bash
echo Introduce tu nombre
leer nombre
echo $ nombre> data_dir.txt
echo Introduce tu edad
leer edad
echo $ age >> data_dir.txt
cat data_dir.txt

los gato El comando se usa para crear y editar los archivos. Guarde el script anterior en Vim cambiando de modo después de presionar el Esc clave y luego escriba : en myscript.sh . Abra la terminal y ejecute el código:

Cómo escribir un archivo usando Heredoc

Si desea escribir varias líneas, el método más sencillo es usar Heredoc. Aquí el documento, también conocido como Heredoc, es un bloque de código multipropósito. La sintaxis de Heredoc es:

Mando<<[-] Delimiter
.
texto / comandos
.

Delimitador

Se puede usar cualquier cadena en lugar de Delimitador, y también se puede usar para eliminar cualquier espacio de tabulación en el archivo. Entendamos esto con un ejemplo simple:

#! / bin / bash

gato<< TEXTFILE
Este es un archivo de texto.
Este archivo se crea utilizando heredoc.
ARCHIVO DE TEXTO

El comando script cat anterior crea un archivo de texto con el nombre de TEXTFILE y escribe texto en el archivo recién creado. Ahora guarde el archivo con el nombre de myscript.sh . Inicie la terminal y ejecute el script.

Cómo escribir un archivo usando el comando Tee

Otro método para escribir un archivo es usar el comando Tee. Como nombre que indica, este comando toma la entrada y escribe en un archivo y muestra la salida simultáneamente. De forma predeterminada, el comando Tee sobrescribirá los datos existentes.

$ echo Este es un texto | tee textfile.txt

Para agregar use –a:

$ echo Este es otro texto | tee –un archivo de texto.txt

Para escribir varias líneas, use:

$ echo Agregar texto a varios archivos | tee textfile1.txt textfile2.txt textfile3.txt

El comando anterior creará tres archivos si no existen y escribirá texto en cada uno de ellos.

Conclusión

Esta guía se centra en múltiples enfoques para escribir en un archivo en bash con ejemplos. En bash scripting, hay varias formas de escribir un archivo, pero la más simple es usar operadores de redirección>, >>. Para escribir varias líneas, se puede utilizar heredoc, y si desea escribir los mismos datos en varias líneas, el comando tee es bastante útil.