Removendo blocos dos arquivos de configuração?

0

Alguém conhece uma maneira prática fácil de remover blocos de configuração. Eu tenho um arquivo no formato:

lease {
  interface "eth0";
  ...
}
lease {
  interface "wlan3";
  fixed-address 192.168.0.108;
  option subnet-mask 255.255.255.0;
  ...
}

Desejo remover o bloco de configuração para interface "wlan3"; .

Comecei a tentar escrever uma função grep personalizada, mas ela estava ficando complexa rapidamente.

Isso parece algo que pode ser um problema comum. Alguém tem uma solução conveniente para lidar com arquivos de configuração deste formato?

    
por Philip Kirkbride 16.11.2017 / 15:47

1 resposta

2

com awk :

awk -v RS='}' 'NF && ! /interface "wlan3";/{print $0"}"}'  infile

A saída seria:

lease {
  interface "eth0";
  ...
}
    
por 16.11.2017 / 16:02