Предполагая, что данные структурированы таким образом, что вы всегда хотите использовать строку до и после этого, вы можете использовать переключатели grep -A(after) и -B(before), чтобы указывать, что они включают 1 строку перед совпадением и 1 строку после него:
$ grep -A 1 -B 1 "42B" sample.txt
Pseudo name=Apple
Code=42B
state=fault
Если вам нужны одинаковые номера строк до и после поискового запроса, вы можете использовать -Cпереключатель (context):
$ grep -C 1 "42B" sample.txt
Pseudo name=Apple
Code=42B
state=fault
Если вы хотите быть более строгим при сопоставлении нескольких строк, вы можете использовать инструмент pcregrep, чтобы сопоставить шаблон с несколькими строками:
$ pcregrep -M 'Pseudo.*\n.*42B.*\nstate.*' sample.txt
Pseudo name=Apple
Code=42B
state=fault
Приведенный выше шаблон соответствует следующему:
-M - несколько строк
'Pseudo.*\n.*42B.*\nstate.*'- соответствует группе строк, где первая строка начинается со слова, "Pseudo"за которым следуют любые символы до конца строки \n, за которыми следуют любые символы до строки, "42B"за которыми следуют любые символы до другого конца строки ( \n), за которым следует строка "state"следуют любые символы.