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 № 1Use 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.