Expresion regular en grep

Requisito previo: grep

Expresión regular básica

La expresión regular brinda la capacidad de hacer coincidir una «string de texto» de una manera muy flexible y concisa. Una «string de texto» se puede definir además como un solo carácter, palabra, oración o patrón particular de caracteres.

Al igual que los comodines del intérprete de comandos que coinciden con nombres de archivos similares con una sola expresión, grep utiliza una expresión de un tipo diferente para coincidir con un grupo de patrones similares.

  • [ ] : Coincide con cualquiera de los caracteres establecidos
  • [ ] con guión : Coincide con cualquiera de un rango de caracteres
  • ^ : El patrón que le sigue debe aparecer al principio de cada línea
  • ^ con [ ] : El patrón no debe contener ningún carácter en el conjunto especificado
  • $ : el patrón que lo precede debe aparecer al final de cada línea
  • . (punto) : Coincide con cualquier carácter
  • \ (barra invertida) : Ignora el significado especial del carácter que le sigue
  • * : cero o más ocurrencias del carácter anterior
  • (punto).* : Nada o cualquier cantidad de caracteres.

Ejemplos

(a) [ ] : Coincide con cualquiera de los caracteres establecidos

  1. $grep  “New[abc]”  filename
    

    Especifica el patrón de búsqueda como:

    Newa , Newb or Newc
    
  2. $grep  “[aA]g[ar][ar]wal”  filename
    

    Especifica el patrón de búsqueda como

    Agarwal , Agaawal , Agrawal , Agrrwal
    
    agarwal , agaawal , agrawal , agrrwal
    


(b) Use [ ] con guión
: Coincide con cualquiera de un rango de caracteres

  1. $grep  “New[a-e]” filename
    

    Especifica el patrón de búsqueda como

    Newa , Newb or Newc , Newd, Newe
    
  2. $grep  “New[0-9][a-z]”  filename
    

    Especifica el patrón de búsqueda como: Nuevo seguido de un número y luego un alfabeto.

    New0d, New4f etc
    

(c ) Use ^ : El patrón que le sigue debe ocurrir al comienzo de cada línea

  1. $grep  “^san”  filename
    

    Líneas de búsqueda que comienzan con san. Especifica el patrón de búsqueda como

    sanjeev ,sanjay, sanrit , sanchit , sandeep etc.
    
  2. $ls –l |grep  “^d” 
    

    Mostrar solo la lista de directorios

  3. $ls –l |grep  “^-” 
    

    Mostrar solo la lista de archivos normales

(d) Use ^ con [ ] : el patrón no debe contener ningún carácter en el conjunto especificado

  1. $grep  “New[^a-c]”  filename
    

    Especifica el patrón que contiene la palabra «Nuevo» seguido de cualquier carácter que no sea ‘a’, ‘b’ o ‘c’

  2. $grep  “^[^a-z A-Z]”  filename
    

    Líneas de búsqueda que comienzan con un carácter no alfabético

(e) Use $ : el patrón que lo precede debe aparecer al final de cada línea

$ grep "vedik$" file.txt

(f) Usar . (punto) : Coincide con cualquier carácter

$ grep "..vik" file.txt
$ grep "7..9$" file.txt

(g) Use \ (barra invertida) : Ignora el significado especial del carácter que lo sigue

  1. $grep "New\.\[abc\]" file.txt

    Especifica el patrón de búsqueda como Nuevo.[abc]

  2. $grep "S\.K\.Kumar" file.txt
    

    Especifica el patrón de búsqueda como

    S.K.Kumar
    

(h) Usar * : cero o más ocurrencias del carácter anterior

$ grep "[aA]gg*[ar][ar]wal" file.txt


(i) Use (punto).*
: Nada o cualquier cantidad de caracteres.

$ grep "S.*Kumar" file.txt

Este artículo es una contribución de Akshay Rajput . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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