Filtros en Linux: find, grep, cut, wc, sort, uniq y awk
Resumen
Este documento explica los principales filtros y comandos de Linux para buscar, filtrar y procesar texto: find, grep, cut, wc, sort, uniq y awk. Describe su sintaxis, las opciones más usadas y ejemplos básicos. Es útil para practicar la administración de archivos y el procesamiento de datos desde la terminal.
Puntos clave
- find localiza archivos y directorios por nombre; con -type d busca solo directorios y con -type f solo ficheros.
- find puede ejecutar un comando sobre los resultados mediante -exec comando '{}' ';'.
- grep busca patrones en archivos; -i ignora mayúsculas, -e permite varios patrones, -v muestra las líneas que no coinciden y -f usa patrones de un archivo.
- cut extrae campos o caracteres de cada línea: -c por caracteres, -f por campos, y -d define el delimitador (por defecto TAB).
- wc cuenta caracteres (-c), líneas (-l) y palabras (-w); sort ordena líneas con opciones como -n, -k, -t y -f.
- uniq elimina líneas repetidas consecutivas, por lo que la entrada debe estar ordenada.
- awk procesa archivos por patrones y acciones; con print $n se extrae la columna n y con FS se define el separador de campos.
Filtros en Linux: Comando find
Permite localizar archivos dentro de la estructura de directorios aunque tiene muchas más opciones.
Sintaxis:
find PtoBúsqueda –name “NombreArchivo”
También puede ser utilizado para buscar sólo en directorios, su sintaxis:
find PtoPartidaBúsqueda –name “NombreArchivo” –type d
Con el modificador –type f busca solo ficheros.
Otra posibilidad con el comando find es encontrar un archivo y después de localizado ejecutar un comando sobre él:
find PtoBúsqueda –name “NombreArchivo” -exec comando ‘{}’ ‘;’
Filtro grep
Busca un patrón en un archivo, sintaxis: Grep patrón archivo1
-f->utiliza un patrón (un archivo que tiene un patrón), -i->diferencia mayúsculas de minúsculas, -e->para poner más de un patrón (grep –e patrón1 –e patrón2 archivo), -v->muestra las líneas que no lo cumplen.
Filtro cut
Corta en función o bien en número de caracteres o bien de un número delimitador. Extrae 1 o varios campos para cada línea de un archivo.
Sintaxis: -c->cuenta caracteres (lista:1,3,7)(rango: 1-7), -f->campos se encuentran separados por delimitadores que especifican con la opción –d, -d->delimitador-> ‘:’, en caso de no hallarlo, utilizar TAB, Ejemplo: cut –f lista [-d carácter] [archivo1…]
Filtro wc
Este filtro se utiliza para contar el número de caracteres, líneas, palabras. Sintaxis: Wc –clw archivo1 archivo2 archivo3. -c->caracteres, -l->líneas, -w->palabras.
Filtro sort
Este filtro ordena las líneas de archivos y las envía a salida estándar. Sintaxis: Sort archivo. -f->diferencia mayúsculas de minúsculas, -n->caracteres numéricos como número, los valores por defecto se consideran caracteres dígitos, -t->carácter, -k->columna.
Filtro uniq
Elimina repetidos si la entrada está ordenada. Sintaxis: Uniq[OPCIÓN]…[ENTRADA[SALIDA]].
Awk
Comando de procesamiento de patrones, comprueba cada línea de un archivo, buscando las que coincidan con los patrones dados en la línea de comando. Sintaxis: awk '{patrón + acción}' {nombresdearchivo}.
Operadores:
^->Principio de línea, $->fin de línea, []->Clase de caracteres, | OR, *->Cero o más apariciones, +->Una o más apariciones, ?->Cero o una aparición, .->Comodín (un carácter), ()->Agrupación.
El patrón que más utilizaremos será PRINT al cual incorporándole $numcolumna nos permitirá extraer una o más columnas de un determinado fichero.
Ejemplos:
awk '{print $2}' caidas.txt (nos mostrará la segunda columna del fichero caidas). awk FS="." '{print $1 $3}' /etc/passwd (mostrar el 1 y 3 campo del fichero /etc/passwd).
Descargar
PDF Word HTMLPreguntas frecuentes
¿Cómo busco solo directorios con find en Linux?
Se usa find con la opción -type d, por ejemplo: find PtoPartidaBúsqueda -name "NombreArchivo" -type d. Con -type f se buscan solo ficheros.
¿Para qué sirve la opción -v de grep?
La opción -v muestra las líneas que no cumplen el patrón buscado, es decir, invierte el resultado de la búsqueda.
¿Por qué uniq necesita que la entrada esté ordenada?
uniq elimina repetidos solo cuando son líneas consecutivas, por eso el texto debe ordenarse antes, normalmente con sort.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.