El uso de expresiones regulares y comandos grep bajo la expresión regular de Linux

  
(Regular Exdivssion, RE) 1 ¿Cuál es la notación regular: ¿Cuál es la expresión regular (Regular Exdivssion, en lo sucesivo, RE)? En pocas palabras, en el entorno Linux, podemos usar la "cadena y algunos caracteres especiales para ayudar" en la comparación de texto, de modo que los usuarios puedan filtrar los datos que necesitan. ¡Estos caracteres especiales y las herramientas utilizadas juntas forman el eje principal de la representación regular! Por ejemplo, el directorio /etc/rc.d/init.d está bien. Si desea buscar un nombre de archivo que contenga el nombre de la cadena del correo, ¿cómo realiza la búsqueda? Use grep con correo y caracteres universales para buscar todos los nombres de archivo "grep 'correo' /etc/rc.d/init.d/*" 2 Representación formal para administradores de sistemas: para administradores de sistemas, La expresión formal es algo bueno para aprender! 』Debido a que el sistema está en una situación ocupada, el mensaje generado todos los días será tan alto como usted no puede imaginar, y todos sabemos que el" archivo de inicio de sesión de mensajes de error "del sistema registra toda la información generada por el sistema, por supuesto. Esto incluye datos de registro de si su sistema ha sido "invadido". Sin embargo, la cantidad de datos en el sistema es demasiado grande. Es muy difícil para el administrador del sistema ver tanta información de información todos los días. Es muy difícil pensar en ello. En este momento, podemos utilizar la función de "representación regular". La información de inicio de sesión se procesa, y solo la información de "error" se saca para su análisis. 3 Amplio uso de la notación regular: además del administrador del sistema, una gran cantidad de software y configuraciones admiten la representación formal, el ejemplo más común es el "servidor de correo". ¿Recibe a menudo las "cartas publicitarias" más criticadas en los correos electrónicos? Luego, si elimino la carta de publicidad en el lado del servidor, el cliente reducirá una gran cantidad de pérdida de ancho de banda innecesaria, ¿verdad? Entonces, ¿cómo deshacerse de las cartas de publicidad? Dado que la letra del anuncio tiene casi ciertos títulos o contenidos, siempre que haya una letra, el título y el contenido de la letra se compararán con la cadena especial, y la expresión normal se usará para descubrir que hay letras malas para excluir. En la actualidad, los dos principales software de servidor, sendmail y postfix, son compatibles con la función de comparación de representación normal. Muchos software de servidor y suites admiten notación regular. 4 grep Sintaxis: [root @test /root] # grep [-acinv] Lista de archivos de 'Cadena de búsqueda' Descripción del parámetro: -a: Busca el archivo binario como archivo de texto -c: Calcula la cadena de búsqueda de búsqueda ' El número de veces que -i: ignora la diferencia entre mayúsculas y minúsculas, por lo que el caso se considera el mismo -n: Por cierto, el número de línea de salida -v: selección inversa, es decir, la línea que no muestra contenido de 'cadena de búsqueda'. Ejemplo: [root @test /root] # grep 'root' /var /log /secure Buscar /var /log /secure Este archivo contiene la línea raíz [root @test /root] # grep -v 'root' /var /log /secure Buscar líneas sin root [root @test /root] # grep [AZ] ANPATH /etc/man.config Descripción: grep es una instrucción muy común, la función más importante es comparar datos de cadena. Lo que se necesita explicar es que cuando grep busca una cadena en un archivo, ¡usa la "línea completa" como la unidad para recuperar los datos! Grep es una de las instrucciones de búsqueda de notación regular más simples. No admite algunos de los contenidos de notación regular más rigurosos, pero es bastante fácil de usar. Ejemplo 1: descubra que este archivo contiene el carácter saber y enumere el número de línea: tenga en cuenta que el caso no es el mismo [root @test /root] # grep -n 'know' regexp.txt Ejemplo 2: averigüe Este archivo contiene el carácter * y enumera el número de línea: [root @test /root] # grep -n '\\ *' regexp.txt Ejemplo 3: Quiero enumerar todos los conocimientos, independientemente del uso de mayúsculas, y enumerar las líneas. No .: [root @test /root] # grep -ni 'know' regexp.txt Nota: los comandos similares incluyen egrep, awk, gawk, sed, etc., y los caracteres especiales (caracteres) de la notación regular 5 se explicarán en detalle más adelante. Los caracteres especiales con la instrucción egrep indican el significado de la palabra ^ palabra El carácter que se buscará al comienzo de la palabra de la línea $ El carácter que se buscará al final de la línea. Haga coincidir cualquiera de los posibles símbolos \\ saltos para convertir caracteres especiales en caracteres comunes. Cualquier carácter "único" * Caracteres repetidos en el patrón correspondiente [lista] Caracteres en la lista [rango] Caracteres en el rango en la lista [^ lista] Selección inversa, frente a [lista] [^ rango] Selección inversa, contrario a [rango] \\ {n \\} flotando la misma palabra que la anterior \\ {n, m \\} flota consecutivamente con la misma palabra en el último nm. Tenga en cuenta que los "caracteres especiales de la notación regular" no son los mismos que los "caracteres universales" que normalmente se ingresan en la línea de comandos. Por ejemplo, Entre los caracteres universales, * representa el significado de 0 ~ un número infinito de caracteres, pero en la notación regular, * es el significado de repetir el carácter anterior - el significado del uso no es el mismo, ¡no confunda! Ejemplo: bajo /etc, siempre que la línea que contiene cualquiera de los tres caracteres de XYZ aparezca como grep [XYZ] /etc /* Ejemplo: quiero saber eso en /etc, siempre que la primera oración sea wz ¿Lo imprimió? Grep ^ [w-z] /etc /* 6 diff ¡Compara los contenidos de dos archivos para obtener instrucciones inconsistentes! Sintaxis: [root @test /root] # diff file1 file2 Ejemplo: [root @test /root] # diff index.htm index.html Ejemplo: ls –l |  Grep ‘^ d’ Subdirectorio de consulta Nota: es una buena práctica usar expresiones regulares al agregar ‘a ambos extremos del patrón coincidente. Esto es diferente del símbolo de comodín del archivo de la shell. 7 Caracteres específicos de expresiones totalmente regulares Patrón de ejecución 1 |  Pattern2 Logic o (patten) Agrupa el patrón char + ¿Busca una o más instancias repetidas del carácter anterior? Busca una o 0 instancias del carácter anterior Ejemplo: t + coincide con uno o más ts consecutivos, como t tt ttt t? Match 0 o 1 t, como t o '' "crear |  Corriente "que coincida con cualquiera de los dos modos. Revisión clave. La diferencia entre caracteres de coincidencia de archivo de shell y expresiones regulares. Caracteres de coincidencia de archivo de shell se utilizan para hacer coincidir nombres de archivos. La representación formal de RE se utiliza principalmente como" búsqueda ". El uso de cadenas, los contenidos de los archivos coincidentes y el propósito de filtrar mensajes especiales; • Debido a la diferencia de rigor, existe una representación formal extendida más rigurosa en la representación regular; • El tratamiento de las representaciones regulares, A menudo se maneja como "fila completa" o "segmento completo". • grep y egrep son dos programas comunes en notación regular, donde egrep puede combinarse con diferentes modos, y el soporte es más Gramática rigurosa de la representación regular.
Copyright © Conocimiento de Windows All Rights Reserved