Wenn Sie eine bestimmte Zeichenfolge im zweiten Feld abgleichen möchten und "Fortführungszeilen" ausdrucken möchten, nachdem diese Zeichenfolge übereinstimmt, versuchen Sie es mit diesem awk-Skript.
awk -v fltr="_str_" 'BEGIN next } if ($2 == fltr) { print $0 havematch=1 next } }' _file_
Ich habe es aufgeteilt, um das Lesen zu erleichtern.
Grundsätzlich beginnen Sie mit der Initialisierung der Variablen "havematch" auf null, da Sie zu Beginn keine Übereinstimmungen haben. Dann prüfen Sie, ob eine Zeile mit "----" beginnt. Wenn dies der Fall ist und die Variable "havematch" gesetzt ist, drucken Sie diese Zeile aus, da es sich um eine "Fortsetzungszeile" handelt. Wenn die Zeile mit "----" beginnt und die Havarie ist auf Null gesetzt, dann ist dies eine Fortsetzung für etwas anderes. Drucken Sie es nicht aus. Wenn die Zeile mit "----" beginnt, gehen Sie nach der Havarieprüfung zur nächsten Zeile.
Wenn das zweite Feld in der Zeile mit Ihrer Filterzeichenfolge übereinstimmt, drucken Sie die Zeile aus und setzen Sie die Variable "havematch" auf "1". Fahren Sie mit der nächsten Zeile fort.
Wenn es sich bei der Zeile nicht um eine Fortführungszeile handelt und das zweite Feld nicht mit Ihrer Filterzeichenfolge übereinstimmt, stimmt diese Zeile nicht überein, und Sie möchten keine Folgezeilen drucken. Setzen Sie also die Havematch-Variable auf Null.
Hoffe das hilft.