Escribir dentro de archivos

Clase 31 de 43Curso de Programación en Bash Shell

Resumen

Escribe de forma rápida y segura en archivos desde Bash sin abrir un editor. Aquí verás dos métodos prácticos con comando eco y comando concat, cómo usar argumentos para pasar el archivo y el contenido, y un ejemplo simple para validar la salida. Todo con un enfoque directo y útil.

¿Cómo escribir en un archivo en bash sin abrir un editor?

Para automatizar tareas, es clave generar contenido de archivo desde un script. Se proponen dos rutas: con el comando eco y con el comando concat. Ambas permiten escribir sin abrir el editor Bing en el servidor de Ubuntu.

  • Usa argumentos: el archivo destino como primer argumento y el texto como segundo argumento.
  • Con eco, redirige la salida estándar hacia el archivo.
  • Con concat, habilita una edición multilínea usando una “palabra reservada” de cierre, por ejemplo EOM.

¿Cómo se ve el script con eco y concat?

#!/usr/bin/env bash
# uso: ./write_file.sh <archivo> <texto>

# 1) Escribir una línea con el comando eco.
echo "valores escritos con el comando eco" > "$1"

# 2) Edición multilínea con el comando concat y un delimitador.
concat <<EOM >> "$1"
$2
EOM
  • Línea 1: escribe una frase fija con eco en el archivo del argumento 1.
  • Bloque concat: captura varias líneas hasta repetir EOM y las agrega al mismo archivo.

¿Qué diferencia hay entre eco y concat para escribir archivos?

Ambos permiten escribir, pero su enfoque cambia.

  • eco: imprime en la salida estándar y, con redirección, escribe en archivo. Ideal para una línea.
  • concat: además de mostrar contenido, puede producir texto multilínea mediante un delimitador como EOM. Útil para bloques.
  • Resultado esperado: primera línea escrita con eco y segunda con concat, en el mismo archivo.

Puntos clave que aparecen y se practican: - Argumentos: $1 es el archivo destino, $2 el contenido a escribir. - Edición multilínea: concat con EOM para cerrar el bloque. - Verificación: leer el archivo con concat para confirmar el resultado.

¿Cómo pasar argumentos y validar con prueba.txt?

La ejecución toma dos argumentos: primero el archivo y luego el texto.

  • Archivo destino: prueba.txt.
  • Texto de ejemplo: “imprimiendo concat, añadiendo valores concat”.

Ejemplo de ejecución:

./write_file.sh prueba.txt "imprimiendo concat, añadiendo valores concat"

Validación del contenido:

concat prueba.txt

Salida esperada en dos líneas: - valores escritos con el comando eco. - valores escritos con el comando concat.

Habilidades y conceptos que refuerzas: - Escritura de archivos sin editor desde Bash. - Uso de argumentos para controlar archivo y contenido. - Redirección de salida y bloques multilínea con delimitador EOM. - Lectura de verificación con concat para confirmar lo escrito.

¿Tienes dudas o quieres compartir tu variación del script? Comenta cómo lo adaptarías a tu flujo de trabajo.

      Escribir dentro de archivos