Excluir bloco de texto com palavra de pesquisa correspondente [duplicado]

0

Estou prestes a escrever um script que deve excluir um bloco de texto (em um têxtil), onde a palavra de pesquisa foi encontrada. Infelizmente eu não posso fazê-lo funcionar.

Eu tenho um arquivo de lista que se parece com isso

[valid_account]
user        = doe.john
passw       = 4567
mac         = 11-22-33-44-bb-cc
s2          = qwe

[valid_account]
user        = kent.clark
passw       = 1234
mac         = 00-11-22-33-aa-bb
s1          = abc
s2          = efg

[valid_account]
user        = bond.james
passw       = 6789
mac         = 44-55-66-77-ee-ff
s4          = bnm

[valid_account]
user        = parker.peter
passw       = 9876
mac         = 77-bb-cc-66-00-aa
s1          = abc

se a palavra de pesquisa for 00-11-22-33-aa-bb, como posso excluir o bloco de texto com a palavra de pesquisa que o resultado é esse?

[valid_account]
user        = doe.john
passw       = 4567
mac         = 11-22-33-44-bb-cc
s2          = qwe

[valid_account]
user        = bond.james
passw       = 6789
mac         = 44-55-66-77-ee-ff
s4          = bnm

[valid_account]
user        = parker.peter
passw       = 9876
mac         = 77-bb-cc-66-00-aa
s1          = abc
    
por skapi 04.04.2018 / 19:56

3 respostas

1

Com o gnu sed

sed '/valid_account/!d;:A;N;$bB;/\n$/!bA;:B;/00-11-22-33-aa-bb/d' infile
    
por 04.04.2018 / 20:16
1
awk -v delete_regex='00-11-22-33-aa-bb' -v RS=$'\n\n' -v ORS=$'\n\n' \
    '$0 !~ delete_regex' inputfile

Pode ser alterado para que a string de pesquisa não seja interpretada como regex.

    
por 04.04.2018 / 20:06
0

Com , forma compacta / concisa:

$ perl -00ne 'print if !/00-11-22-33-aa-bb/' file

ou usando uma variável str :

str='00-11-22-33-aa-bb' perl -00lne 'print if !/$ENV{"str"}/' file

Saída:

[valid_account]
user        = doe.john
passw       = 4567
mac         = 11-22-33-44-bb-cc
s2          = qwe

[valid_account]
user        = bond.james
passw       = 6789
mac         = 44-55-66-77-ee-ff
s4          = bnm

[valid_account]
user        = parker.peter
passw       = 9876
mac         = 77-bb-cc-66-00-aa
s1          = abc
    
por 04.04.2018 / 20:16

Tags