Filtros en Linux: find, grep, cut, wc, sort, uniq y awk

InformáticaActualizado el 2,79 KB

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.

Ponte a prueba

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 HTML

Preguntas 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

1. ¿Qué opción de find se usa para buscar solo ficheros?
2. ¿Qué hace la opción -i de grep?
3. ¿Qué opción de wc cuenta las líneas?
4. ¿Cuál es el delimitador por defecto de cut si no se indica -d?
5. ¿Qué comando sirve para eliminar líneas repetidas?
6. En awk, ¿qué muestra el comando awk '{print $2}' caidas.txt?
7. ¿Qué opción de sort ordena valores numéricos como números?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.