Dengan asumsi data terstruktur sehingga selalu menjadi baris sebelum dan sesudah yang Anda inginkan, Anda dapat menggunakan sakelar grep -A
(setelah) dan -B
(sebelum) untuk mengatakannya menyertakan 1 baris sebelum pertandingan dan 1 baris setelahnya:
$ grep -A 1 -B 1 "42B" sample.txt
Pseudo name=Apple
Code=42B
state=fault
Jika Anda menginginkan garis angka yang sama sebelum dan sesudah istilah pencarian, Anda dapat menggunakan -C
sakelar (konteks):
$ grep -C 1 "42B" sample.txt
Pseudo name=Apple
Code=42B
state=fault
Jika Anda ingin menjadi lebih ketat ketika mencocokkan beberapa baris, Anda dapat menggunakan alat ini pcregrep
, untuk mencocokkan pola pada beberapa baris:
$ pcregrep -M 'Pseudo.*\n.*42B.*\nstate.*' sample.txt
Pseudo name=Apple
Code=42B
state=fault
Pola di atas cocok sebagai berikut:
-M
- beberapa baris
'Pseudo.*\n.*42B.*\nstate.*'
- cocok dengan sekelompok string di mana string pertama dimulai dengan kata yang "Pseudo"
diikuti oleh karakter apa pun hingga akhir baris \n
, diikuti oleh karakter apa saja hingga string "42B"
diikuti oleh karakter apa pun hingga akhir baris ( \n
), diikuti oleh string "state"
diikuti oleh karakter apa saja.