GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo buscar un patrón de varias líneas en un archivo?

Aquí está el ejemplo usando GNU grep :

grep -Pzo '_name.*\n.*_description'

-z /--null-data Trate la entrada como un conjunto de líneas, cada una terminada en un byte cero (el carácter ASCII NUL) en lugar de una nueva línea.

Lo que tiene el efecto de tratar todo el archivo como una línea grande. Ver -z descripción en el manual de grep y también la pregunta común n.º 14 en la página de uso del manual de grep


¿Por qué no vas por awk?:

awk '/Start pattern/,/End pattern/' filename

Linux
  1. ¿Cómo busca archivos que contienen finales de línea de DOS (CRLF) con grep en Linux?

  2. ¿Lista los nombres de archivo según un patrón de nombre de archivo y el contenido del archivo?

  3. Cómo grep \n en el archivo

  4. ¿Cómo puedo buscar un archivo por su nombre y ruta parcial?

  5. Cómo buscar una palabra en todo el contenido de un directorio en Linux

Cómo excluir en Grep

Cómo realizar una búsqueda de patrones en archivos usando Grep

Cómo encontrar una cadena en un archivo en Linux

¿Cómo buscar en archivos específicos que coincidan con un patrón?

Grep ¿Cómo suprimir la visualización de archivos no coincidentes?

Cómo hacer una búsqueda difusa de archivos en Linux