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 № 1Uż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.