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.