awk extrahieren von mehreren Gruppen aus jeder Zeile

Wie führe ich die Aktion auf alle entsprechenden Gruppen, wenn das Muster passt mehrfach in einer Zeile?

Um zu veranschaulichen, will ich suchen für /Hello! (\d+)/ und verwenden Sie die zahlen, zum Beispiel, drucken Sie Sie aus oder die Summe davon, also für die Eingabe

abcHello! 200 300 Hello! Hello! 400z3
ads
Hello! 0

Wenn ich beschlossen, drucken Sie Sie aus, würde ich erwarten, dass die Ausgabe von

200
400
0
  • Für Googler: beachten Sie, dass mit gawk, aka. "GNU awk", können Sie tatsächlich tun, was der Titel sagt (nicht die Frage) in einer Zeile (z.B. via. Verrohrung): | gawk -v RS='' '{ print gensub(/()()/, "\\1\\2", "g"); }' 😀 Diese unterstützt multi-line (wegen der -v RS='') und passendem sub-Gruppen (durch die Verwendung von gawk ist gensub)!!!
Schreibe einen Kommentar