GNU/Linux >> Tutoriales Linux >  >> Linux

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

Aquí hay uno en awk:

$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0

Added feature 3
Added feature 4

En letra bonita:

$ awk '/^=+$/ {     # at ===...
    f=!f            # flag state is flipped
    if(f==1)        # if its one (first ===...)
        next        # next record
    else if(f==0)   # if zero (second ===...)
        exit        # nothing more to do yeah
}
f' file             # print

Aquí hay otro en GNU sed:

$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0

Added feature 3
Added feature 4
  • /^=\+$/,// es una abreviatura de /^=\+$/,/^=\+$/ , selecciona las líneas entre dos líneas que consisten en signos iguales inclusive, y los comandos entre llaves siguientes se ejecutan para estas líneas,
  • //!p es una abreviatura de /^=\+$/!p , significa que si la línea entrante no es una de las que consisten solo en = s, imprimirlo,
  • b significa ir al final del ciclo (es decir, pasar q ),
  • q es para salir de sed después de imprimir las líneas seleccionadas.

La siguiente versión funcionará con todos Seds compatibles con POSIX pero se ve 2 veces más críptico:

sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file

Tenga en cuenta que estos no funcionarán si hay dos consecuentes todos = líneas en la entrada.


¿Podría intentar seguirme también?

awk '/^=/{count++;next} count>=2{exit} {print}'  Input_file

Linux
  1. Cómo obtener la diferencia (solo adiciones) entre dos archivos en Linux

  2. Cómo obtener solo el número de líneas de un archivo

  3. ¿Cómo puedo obtener la carpeta temporal de una máquina que ejecuta maven?

  4. ¿Cómo puedes cambiar las teclas j y k en vim?

  5. ¿Cómo diferenciar solo la primera línea de dos archivos?

¿Cómo insertar texto antes de la primera línea de un archivo?

¿Cómo eliminar las primeras N líneas de un archivo ASCII usando los comandos de Shell?

¿Cómo puedo diferenciar dos secciones del mismo archivo?

¿Cómo puedo obtener la duración de un archivo de video desde la consola?

¿Cómo puedo obtener la hora del reloj de pared de un proceso en ejecución?

¿Cómo puedo rasterizar todo el texto en un PDF?