No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Escribir dentro de archivos

31/43
Recursos

Aportes 27

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

EOM: End Of Message
EOF: End Of File

para complementar la información de esta clase;
Para escribir en un archivo podemos utilizar >> y >
>>, si no existe el archivo, se creará, si existe, se agregara al final del archivo.
>, si no existe el archivo, se creara, si existe, será reemplazado

[💡] Hincapié

>> # Concatena
>  # Reemplaza

Aquí les dejo un link a una clase del curso introducción a la terminal, ahi se explica más detalladamente el uso del << y del >> , ayuda mucho a asimilar el conocimiento
.
https://platzi.com/clases/1276-terminal-2019/11189-streams/

Madre mía con el tema del tema

Creo que falto profundizar en este tema, veremos si en las próximas clases amplia el tema.

Si una de las preguntas del examen es cuantas veces se dijo tema en el curso, va a estar difícil

escribir en archivos se hace muy útil al programar scripts mediante crontab (por ejemplo), como si fueran logs … ahora bien, cómo se hace si uno quisiera enviar por correo y no escribir en archivos?

# !/bin/bash
# Programa para mostrar como se escribe en un archivo
# Autor: Luber Cueva

echo "Escribir en un archivo"

echo "Valores escritos con echo " >> $1

#Adición multilínea
cat <<AVION >>$1
$2
echo "Otra linea más"
asdasdadada
AVION

Salida:

Valores escritos con echo 
Valores con el comando cat
echo "Otra linea más"
asdasdadada

palabras comunes en este curso:
tema
ejemplificar

<<[-]palabra
lineas
lineas
lineas
delimitador

cat <<EOF>>ficheroDondeEscribo
        linea 1
        linea 2
        linea 3
EOF

Dejo el ejercicio.

# ! /bin/bash
# Programa para escribir en un archivo
# Autor Marco

echo "Escribir en un Archivos"

echo "Valores escritos con el comando echo" >> $1

#adicion multilinea

cat <<EOM >>$1
$2
EOM

En este script se utiliza redirección. Para más información visiten este enlance.

por si de pronto les pasa no se puede dejar un espacio en la palabra reservada EOM marca un error de final de archivo.

En \*\*Bash\*\*, hay varias formas de escribir dentro de archivos, ya sea para agregar contenido, sobrescribir o modificar archivos existentes. Aquí te muestro cómo hacerlo utilizando redirecciones y algunos comandos básicos. \### Métodos para escribir en archivos 1\. \*\*Redireccionar con `>` (sobrescribir el archivo)\*\*: Este método sobrescribe el archivo existente o crea uno nuevo si no existe. \- Ejemplo: Escribir "Hola Mundo" en un archivo llamado `archivo.txt` (sobrescribirá el contenido existente). ```bash echo "Hola Mundo" > archivo.txt ``` 2\. \*\*Redireccionar con `>>` (agregar al archivo)\*\*: Usa `>>` para agregar contenido al final de un archivo sin borrar su contenido actual. \- Ejemplo: Agregar "Nueva línea" al final de `archivo.txt`. ```bash echo "Nueva línea" >> archivo.txt ``` 3\. \*\*Usar `cat` para escribir múltiples líneas en un archivo\*\*: Puedes usar `cat` con una redirección para escribir varias líneas en un archivo. \- Ejemplo: Escribir múltiples líneas en `archivo.txt`: ```bash cat > archivo.txt << EOL Esta es la primera línea Esta es la segunda línea EOL ``` En este caso, `EOL` es un delimitador que indica el final del texto a escribir. 4\. \*\*Usar `tee` para escribir en un archivo\*\*: El comando `tee` puede redirigir la salida a un archivo. Si lo usas sin la opción `-a`, sobrescribirá el archivo; con la opción `-a`, lo agregará. \- Ejemplo: Escribir "Texto nuevo" en `archivo.txt` (sobrescribir): ```bash echo "Texto nuevo" | tee archivo.txt ``` \- Para agregar sin sobrescribir: ```bash echo "Texto adicional" | tee -a archivo.txt ``` 5\. \*\*Escribir desde un script Bash\*\*: Puedes escribir directamente desde un script Bash utilizando las redirecciones que ya conoces. \- Ejemplo: Script que escribe en un archivo: ```bash \#!/bin/bash echo "Escribiendo desde un script" > script\_output.txt ``` \- Guarda este script como `escribir.sh` y hazlo ejecutable: ```bash chmod +x escribir.sh ``` \- Luego ejecútalo: ```bash ./escribir.sh ``` 6\. \*\*Leer y escribir usando `read`\*\*: Puedes usar el comando `read` para capturar la entrada del usuario y luego escribirla en un archivo. \- Ejemplo: Leer una línea del usuario y escribirla en `archivo.txt`: ```bash read -p "Escribe algo: " input echo $input >> archivo.txt ``` \### Ejemplo práctico: Si quieres combinar varias de estas técnicas en un script para escribir en un archivo de forma interactiva y guardar el contenido: ```bash \#!/bin/bash \# Script para escribir en un archivo de forma interactiva echo "Escribe el nombre del archivo (se creará si no existe):" read nombre\_archivo \# Escribir la primera línea (sobrescribiendo el archivo) echo "Escribe la primera línea (sobrescribiendo):" read primera\_linea echo $primera\_linea > $nombre\_archivo \# Agregar más líneas (sin sobrescribir) while true; do echo "Escribe una línea más (o escribe 'salir' para terminar):" read nueva\_linea if \[ "$nueva\_linea" == "salir" ]; then break fi echo $nueva\_linea >> $nombre\_archivo done echo "Contenido guardado en $nombre\_archivo." ``` Este script te permite escribir interactivamente en un archivo, comenzando por sobrescribirlo y luego agregando nuevas líneas hasta que el usuario escriba "salir". \### Resumen de las redirecciones: \- `>`: Sobrescribe el archivo. \- `>>`: Agrega contenido al archivo. \- `tee`: Escribe en el archivo y muestra el contenido en la terminal al mismo tiempo.
El verdadero tema aquí, es que el profe saber enseñar lo que sabe!
Aqui esta mi explicación de la clase segun como lo entiendo espero que le sirva a alguien. ```txt #!/bin/bash # Programa para ejemplificar como se escribe en un archivo echo "Valores escritos con el comando echo" >> $1 # Se agrega el string del echo al archivo por el # uso del >> que redirige la salida del echo al archivo, pero # sin sobre escribirlo, a comparacion si se hiciese con solo # el > que si sobre escribe el archivo si ya existe. cat <<EOM >>$1 # Permite el ingreso de varias lineas de codigo al archivo # (sin modificarlo por el >>) que esten entre el <<EOM >>$1 # y el EOM de mas abajo que esta despues del $2. # Tambien añade los comentarios que esten dentro. $2 EOM # Este EOM final es el cierra es el ingreso de texto al archivo ```
Bastante corta la clase, gasté más tiempo buscando información de los nuevos términos prentados.

Hay otro forma simple de escribir sobre un fichero es por ejemplo, cuando queremos que la salida de un comando este en un fichero para después poderlo trabajar:
free -h > salida.txt

Si queremos seguir escribiendo debajo de la última línea de ese fichero, entonces ponemos:
echo “Esa es la memoria disponible” >> salida.txt

Slds

Script escrito y probado en Ubuntu 18.04
5 echo “ECHO” >> $1
6 echo “Cadena annadida mediante echo” >> $1 # Lo introducido, a tra ves de $2, se annade al
7 #echo $2 >> $1 # Lo introducido, a traves de $2, se annade al
8 #destino que es $1
9 echo “” >> $1
10
11 #Multiline addition. EOM es una palabra reservada que permite
12 #introducir distintas palabras, a traves de $2, que se annaden
13 #al destino que es $1. El argumento $2 es el nombre del file que
14 #se va a generar y $1 es el texto que se va a annadir al file
15 #generado mediante $2
16 #cat <<EOF >> $1
17
18 echo “CAT” >> $1
19 cat <<EOM >> $1
20 Cadena annadida mediante cat
21 EOM
22
23 /bin/cat <<EOF >> $1
24 Cadena annadida mediante cat
25 EOF
26
27 echo “” >> $1
28
29 echo “File $1 creado”

Excelente opción !!

Entendido

#!/bin/bash
# Programa escribir archivo.
# DBZ


echo "Escribir en un archivo"

echo "Valores escritos con el comando echo" >> $1

#Adición multilínea
cat <<EOM >>$1
$2
EOM

echo -e "******************************************"
echo "Este es el contendido del archivo: $1"
echo -e "******************************************"
cat $1

Hola, comparto mi práctica.

# ! /bin/bash
# Programa para escribir en un archivo
# Author Diego Beltran histagram @diegodevelops

echo "Escribiendo Archivos"

echo "Valores escritor con echo" >> $1

#adicion multilinea

cat <<EOM >>$1
$2
EOM```

#!/bin/bash

echo "Values written by echo" >> $1

cat <<EOM >>$1
$2
$2
$2
EOM