GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich Wörter zwischen den ersten beiden Instanzen von Text/Muster erhalten?

Hier ist einer in awk:

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

Added feature 3
Added feature 4

Schön gedruckt:

$ 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

Hier ist ein weiteres in GNU sed:

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

Added feature 3
Added feature 4
  • /^=\+$/,// ist eine Abkürzung für /^=\+$/,/^=\+$/ , selektiert es die Zeilen zwischen zwei Zeilen, die aus Gleichheitszeichen bestehen, und die Befehle zwischen den folgenden geschweiften Klammern werden für diese Zeilen ausgeführt,
  • //!p ist eine Abkürzung für /^=\+$/!p , bedeutet dies, dass die ankommende Leitung nicht zu denen gehört, die nur aus = bestehen s, ausdrucken,
  • b bedeutet zum Ende des Zyklus gehen (d.h. q passieren ),
  • q dient zum Beenden von sed nach dem Drucken ausgewählter Zeilen.

Die folgende Version funktioniert mit allen POSIX-kompatible seds, aber es sieht 2x kryptischer aus:

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

Beachten Sie, dass diese nicht funktionieren, wenn zwei aufeinander folgende alle = sind Zeilen in der Eingabe.


Könnten Sie bitte auch Folgendes versuchen.

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

Linux
  1. Wie wähle ich das erste Auftreten zwischen zwei Mustern aus, die sie enthalten?

  2. Wie kann ich den Tastaturstatus unter Linux abrufen?

  3. So erhalten Sie den Unterschied (nur Ergänzungen) zwischen zwei Dateien in Linux

  4. Wie man nur die Anzahl der Zeilen einer Datei erhält

  5. Entfernen Sie effizient die letzten beiden Zeilen einer extrem großen Textdatei

Wie kann ich zwei Abschnitte derselben Datei unterscheiden?

Wie kann ich die Länge einer Videodatei von der Konsole abrufen?

Wie extrahiert man Text aus einer großen Datei, beginnend mit dem ersten Auftreten einer Zeichenfolge?

Wie kann ich unter Linux eine Liste aller falsch geschriebenen Wörter in einem Text erhalten?

Wie erhalte ich zuverlässig den Namen des Betriebssystems?

Wie kann ich den gesamten Text in einem PDF rastern?