/ / Como você pode cortar um intervalo de linhas que cercam a palavra-chave no bash? [duplicado] - bash

Como você pode cortar um intervalo de linhas que cercam a palavra-chave no bash? [duplicado] - bash

Então, eu sei que para cortar linhas que combinam com uma palavra-chave, você pode fazer algo como

grep -v "keyword"

E você pode obter linhas antes e depois com grep usando os comutadores -A e -B ... No entanto, quando você combina os dois ...

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

NÃO recorta todas as 16 linhas de texto dosaída ... Na verdade, não parece fazer nada, por mais que eu possa dizer. Existe alguma outra maneira que eu possa obter essa funcionalidade, onde eu possa procurar por uma palavra-chave e, em seguida, remover o conteúdo circundante definido?

Respostas:

0 para resposta № 1

Use grep duas vezes:

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

para operar no arquivo chamado FILE.

Se ele precisar trabalhar no stdout, primeiro grave-o no FILE usando

> FILE

então faça o acima.