Patrones y búsquedas en Linux

Buscar patrones en ficheros:

grep [opciones] (patrón) (ficheros)

Opciones:

  • [-c devuelve sólo la cantidad de líneas que contienen al patrón. ]
  • [-i ignora las diferencias entre mayúsculas y minúsculas. ]
  • [-H imprime además de las líneas, el nombre del fichero donde se encontró el patrón. Es así por defecto cuando se hace la búsqueda en más de un fichero.]
  • [-l cuando son múltiples ficheros sólo muestra los nombres de aquellos donde se encontró al patrón y no las líneas correspondientes. ]
  • [-v devuelve las líneas que no contienen el patrón]
  • [-r busca en un directorio de forma recursiva. ]
  • [-n imprime el número de cada línea que contiene al patrón. ]

Ejemplos:

grep linux /usr/share/doc
grep root /etc/passwd
grep -n error /var/log/messages
grep -i pepe /etc/passwd
grep -c root /etc/group
grep -l -r -i img /var/www/html/
ls –lia | grep “carta roja”

Buscar de forma recursiva en un directorio:

find (ruta en la que buscar) [opciones]

Opciones:

  • -name permite especificar patrones para los nombres de los ficheros a buscar.
  • -iname permite especificar patrones para los nombres de los ficheros a buscar sin tener en cuenta mayúsculas y minúsculas.
  • -type permite indicar el tipo de fichero a buscar. Este puede ser d para directorios, f para ficheros regulares, l para enlaces simbólicos, b para dispositivos de bloque, c para dispositivos de carácter, p para tuberías y s para sockets.
  • -size +/- permite indicar el tamaño máximo y/o mínimo de los ficheros a buscar. Por defecto el tamaño se expresa en bloques de 512 bytes, pero si se precede este por un carácter c se referirá a bytes, k a kilobytes, w a palabras de dos bytes y b a bloques.
  • -perm [+|-] permite referirse a aquellos ficheros cuyos permisos sean exactamente modo, incluya todos los de modo (signo -) o incluya
    alguno de los de (signo +). El valor de se expresa en forma numérica.
  • -user especifica el usuario propietario del fichero
  • -group especifica el grupo propietario del fichero
  • -exec ; permite definir un comando a ejecutarse para cada resultado de la búsqueda. La cadena {} se sustituye por el nombre de los ficheros encontrados. El caracter ; permite indicar la finalización del comando. (Tanto {} como ; tienen que ir entre comillas o entre contrabarras para evitar que sea sustituido por el shell).

Ejemplos:

$ find /etc -name '*.conf' # busca en /etc todos los ficheros
con extensión conf
$ find / -size +10240k -size -20480k # busca los ficheros cuyo
tamaño esté entre 10M y 20M
$ find -perm +1000 -type d # busca los directorios que posean el permiso t
$ find / -name core -exec rm -i “{}” “;”
# busca todos los ficheros que se nombren core y los borra interactivamente. Los signos “” se utilizan para proteger de la interpretación del shell
Victor

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post

Poner un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *