/ / Jak można wyciąć szereg linii otaczających słowo kluczowe w bashu? [duplikat] - bash

Jak możesz wyciąć zakres linii otaczających słowo kluczowe w bash? [duplicate] - bash

Wiem więc, że aby wyciąć linie pasujące do słowa kluczowego, możesz zrobić coś takiego

grep -v "keyword"

I możesz pobierać linie przed i po grep za pomocą przełączników -A i -B ... Jednak po połączeniu dwóch ...

grep -A 15 -B 1 -v "keyword"

NIE wycina wszystkich 16 linii tekstu zwyjście ... Właściwie nie wydaje się, żeby cokolwiek robił, prawie tak, jak mogę to powiedzieć. Czy jest jakiś inny sposób, w jaki mogę uzyskać tę funkcjonalność, gdzie mogę wyszukać słowo kluczowe, a następnie usunąć zdefiniowaną otaczającą zawartość?

Odpowiedzi:

0 dla odpowiedzi № 1

Użyj grep dwa razy:

grep -v "$(grep -A 15 -B 1 "keyword" FILE)" FILE

działać na pliku o nazwie PLIK.

Jeśli musi działać na stdout, najpierw zapisz go w pliku używając

> FILE

następnie wykonaj powyższe czynności.