Если вы хотите сопоставить данную строку во втором поле и распечатать «строки продолжения» после сопоставления этой строки, попробуйте этот сценарий awk.
awk -v fltr="_str_" 'BEGIN next } if ($2 == fltr) { print $0 havematch=1 next } }' _file_
Я разбил его, чтобы было легче читать.
По сути, вы начинаете с инициализации переменной hasmatch равной нулю, так как в начале у вас нет совпадений. Затем вы проверяете, начинается ли строка с «----», если это так, и переменная havematch установлена, вы выводите эту строку, поскольку она является «строкой продолжения». Если строка начинается с «----» и hasmatch установлен на ноль, тогда это продолжение строки для чего-то еще. Не печатайте это. В любом случае, если строка начинается с «----», после проверки hasmatch перейдите к следующей строке.
Если второе поле в строке соответствует вашей строке фильтра, распечатайте строку и установите переменную havematch равной единице. Перейти к следующей строке.
Если строка не является строкой продолжения, а второе поле не соответствует строке фильтра, то эта строка не совпадает, и вы не хотите распечатывать строки продолжения. Итак, установите переменную havematch на ноль.
Надеюсь это поможет.