GNU/Linux >> Tutoriales Linux >  >> Linux

¿Extraer texto entre dos líneas específicas?

¿Cómo puedo obtener la parte de la salida de un comando entre dos líneas específicas? Un ejemplo ficticio:

Comando:

git for-each-ref --sort='*authordate' --format='%(tag)' refs/tags | grep -v '^$'

Salida:

0.1.0
0.2.0
1.0.0
1.0.1
1.0.2
1.1.0
1.2.0
1.2.1
1.3.0
1.4.0
1.4.1

Quiero obtener la parte de este resultado, entre dos líneas específicas (no según el número de línea, según el contenido):

0.1.0
0.2.0
1.0.0
1.0.1
1.0.2

Respuesta aceptada:

Puede canalizar la salida a awk :

$ ... | awk '/0\.1\.0/,/1\.0\.2/'
0.1.0
0.2.0
1.0.0
1.0.1
1.0.2

Linux
  1. ¿Imprimir líneas entre (y excluyendo) dos patrones?

  2. ¿Imprimir líneas entre (e incluyendo) dos patrones?

  3. ¿Cómo extraer registros entre dos marcas de tiempo?

  4. Salida de las líneas comunes (similitudes) de dos archivos de texto (el opuesto de diff)?

  5. ¿Extraer valor entre dos patrones de búsqueda en la misma línea?

Cómo unir dos archivos de texto en Linux

¿Líneas comunes entre dos archivos?

¿Cómo puedo obtener palabras entre las dos primeras instancias de texto/patrón?

Extraiga archivos específicos en un archivo tar usando un comodín

Diferencia en espacios en blanco entre dos archivos en Linux

Usar sed para reemplazar entre un patrón específico