9. Manipulación de Texto en Bash
Introducción a la Manipulación de Texto
- Descripción: Manipular texto en Bash es una habilidad esencial para cualquier administrador de sistemas o desarrollador. Los comandos de Bash permiten editar, buscar y transformar texto de manera eficiente.
 
echo - Imprimir Texto en la Terminal
- Descripción: Imprime el mensaje en la terminal.
 - Comandos:
echo "mensaje"- Ejemplo:
echo "Hola, Mundo" 
 
cat - Concatenar y Mostrar Archivos
- Descripción: Muestra el contenido del archivo y concatena varios archivos.
 - Comandos:
cat [archivo]cat [archivo1] [archivo2]- Ejemplo:
cat archivo.txt
cat archivo1.txt archivo2.txt 
 
tac - Mostrar Archivos en Orden Inverso
- Descripción: Muestra el contenido del archivo en orden inverso.
 - Comandos:
tac [archivo]- Ejemplo:
tac archivo.txt 
 
more y less - Visualizar Archivos de Forma Paginada
- Descripción: Visualiza archivos página por página.
 - Comandos:
more [archivo]less [archivo]- Ejemplo:
more archivo.txt
less archivo.txt 
 
head y tail - Mostrar Principio o Final de un Archivo
- Descripción: Muestra las primeras o últimas líneas de un archivo.
 - Comandos:
head [archivo]head -n [N] [archivo]tail [archivo]tail -n [N] [archivo]- Ejemplo:
head archivo.txt
head -n 5 archivo.txt
tail archivo.txt
tail -n 5 archivo.txt 
 
grep - Buscar Texto en Archivos
- Descripción: Busca patrones de texto dentro de archivos.
 - Comandos:
grep "patrón" [archivo]grep -i "patrón" [archivo]grep -r "patrón" [directorio]- Ejemplo:
grep "Hola" archivo.txt
grep -i "hola" archivo.txt
grep -r "Hola" /home/rafa/proyectos 
 
cut - Extraer Secciones de Líneas de Texto
- Descripción: Extrae campos de texto delimitados.
 - Comandos:
cut -d "delimitador" -f [campo] [archivo]- Ejemplo:
echo "nombre,edad,ciudad" | cut -d "," -f 2 
 
sort - Ordenar Líneas de Texto
- Descripción: Ordena las líneas de un archivo.
 - Comandos:
sort [archivo]sort -r [archivo]- Ejemplo:
sort archivo.txt
sort -r archivo.txt 
 
uniq - Eliminar Líneas Duplicadas
- Descripción: Elimina o cuenta líneas duplicadas consecutivas.
 - Comandos:
uniq [archivo]uniq -c [archivo]- Ejemplo:
uniq archivo.txt
uniq -c archivo.txt 
 
tr - Traducir o Eliminar Caracteres
- Descripción: Traduce o elimina caracteres en un archivo.
 - Comandos:
tr 'a' 'b' < [archivo]tr -d 'a' < [archivo]- Ejemplo:
echo "hola mundo" | tr 'a' 'o'
echo "hola mundo" | tr -d 'o' 
 
awk - Procesamiento de Texto Basado en Patrones
- Descripción: Procesa y analiza texto basado en patrones.
 - Comandos:
awk '{print $1}' [archivo]awk -F"," '{print $2}' [archivo]- Ejemplo:
echo "nombre edad ciudad" | awk '{print $2}'
echo "nombre,edad,ciudad" | awk -F"," '{print $2}' 
 
sed - Editor de Corrientes
- Descripción: Realiza ediciones en un flujo de texto.
 - Comandos:
sed 's/patrón/reemplazo/' [archivo]sed -i 's/patrón/reemplazo/g' [archivo]- Ejemplo:
echo "hola mundo" | sed 's/hola/adios/'
sed -i 's/hola/adios/g' archivo.txt 
 
Ejercicios de Manipulación de Texto en Bash
Ejercicio 1: Uso de echo y cat
1.1 Imprime "Hola, Mundo" en la terminal.
1.2 Crea un archivo llamado saludo.txt y escribe "Hola, Bash" en él.
1.3 Muestra el contenido de saludo.txt usando cat.
Ejercicio 2: Uso de head y tail
2.1 Muestra las primeras 10 líneas de saludo.txt.
2.2 Muestra las últimas 5 líneas de saludo.txt.
Ejercicio 3: Uso de grep
3.1 Busca la palabra "Hola" en saludo.txt.
3.2 Realiza una búsqueda que no distinga entre mayúsculas y minúsculas para la palabra "hola" en saludo.txt.
Ejercicio 4: Uso de cut
4.1 Crea un archivo datos.csv con el siguiente contenido:
nombre,edad,ciudad
Juan,25,Madrid
Ana,30,Barcelona
4.2 Usa cut para mostrar solo las edades de datos.csv.
Ejercicio 5: Uso de sort y uniq
5.1 Crea un archivo nombres.txt con algunos nombres repetidos.
5.2 Ordena los nombres en nombres.txt.
5.3 Elimina los nombres duplicados de nombres.txt.
Ejercicio 6: Uso de tr
6.1 Reemplaza todas las letras "a" por "o" en saludo.txt.
Ejercicio 7: Uso de awk
7.1 Muestra la primera columna de datos.csv.
7.2 Usa awk para calcular la edad promedio de las personas en datos.csv.
Ejercicio 8: Uso de sed
8.1 Reemplaza "Hola" por "Adiós" en saludo.txt.
8.2 Reemplaza globalmente "Hola" por "Adiós" en saludo.txt y guarda los cambios en el archivo.