Припустимо, що дані структуровані так, що це завжди лінія до і після цього, яку ви хочете, ви можете використовувати перемикачі grep -A(після) та -B(до), щоб сказати, що вона включає 1 рядок перед матчем та 1 рядок після нього:
$ grep -A 1 -B 1 "42B" sample.txt
Pseudo name=Apple
Code=42B
state=fault
Якщо вам потрібні однакові рядки до і після пошукового терміну, ви можете скористатися -C(контекстним) перемикачем:
$ 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"слідом за будь-якими символами.