BASH - jak przeszukać plik z sekcjami

BASH - jak przeszukać plik z sekcjami
SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

plik zawiera:

Kopiuj
---pusta linia---
<Event xmlns=
losowe dane 144534
losowe dane 3462871
</Event>
---pusta linia---
<Event xmlns=
losowe dane 3231
losowe dane 12691
</Event>
---pusta linia---
<Event xmlns=
losowe dane 834231
losowe dane 4761
</Event>
---pusta linia---

zawsze przed
<Event
jest pusta linia oraz po
</Event>
jest pusta linia

Czy jest możliwe wyszukanie w bash jakiś string np 4761 ale żeby wynikiem była nie tylko sama linia zawierająca ten string a cała sekcja pomiędzy pustymi liniami, czyli jakby wyszukiwać w bloku pomiędzy pustymi liniami. Wiem jak wyszukać od 4761 do pustej linii ale potrzebuję wynik taki:

Kopiuj
<Event xmlns=
losowe dane 834231
losowe dane 4761
</Event>

Pozdr

  • Rejestracja: dni
  • Ostatnio: dni
0

AWK:

Kopiuj
> awk -v RS= /4761/ plik
<Event xmlns=
losowe dane 834231
losowe dane 4761
</Event>
> 

sed:

Kopiuj
> sed -n '/^<Event xmlns=$/!b;:a;/\n<\/Event>$/!{N;ba};/4761/p' plik
<Event xmlns=
losowe dane 834231
losowe dane 4761
</Event>
> 

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.