GNU/Linux >> Tutoriales Linux >  >> Linux

rango de números de extracción de grep

Quiere el token de expresión regular de "alternancia" | decir "o esto o aquello":

grep -E '2019-(09|10)-' file

Consulte ¿Por qué mi expresión regular funciona en X pero no en Y? para conocer algunos antecedentes sobre tokens de expresiones regulares y clases de expresiones regulares (básicas, extendidas, etc.).


grep no es bueno manejando números, no sabe compararlos aritméticamente. Para eso, es posible que desee utilizar algo como awk o Perl. Eso no es muy importante aquí, ya que es fácil enumerar 09 y 10 , pero si tuvieras algo así como un rango de 97 a 123 sería mucho peor.

P.ej. esto seleccionaría el año, el mes y el día como números, e imprimiría las líneas donde el día está entre el 27 y el 31:

perl -ne 'print if /Last Password Change: ([0-9]+)-([0-9]+)-([0-9]+)/ && $3 >= 27 && $3 <= 31' < file

La expresión regular es principalmente como un ERE grep, el paréntesis captura las partes correspondientes en las variables $1 , $2 , $3 etc.


Linux
  1. Expresiones regulares:juntándolo todo

  2. ¿Cuenta el número total de ocurrencias usando Grep?

  3. ¿Extraer subcadena según Regexp con Sed o Grep?

  4. ¿La definición de una expresión regular?

  5. Bash + Verificar nombre por expresión regular?

Expresión de secuencia Bash (rango)

Expresiones regulares en Grep (Regex)

Cómo hacer Grep para múltiples cadenas y patrones

10 ejemplos prácticos de expresiones regulares con grep

Cómo invertir una expresión grep

Compruebe el Número de conexiones activas en el puerto 80?