構成ブロックを削除する簡単で実用的な方法を知っている人はいますか?次の形式のファイルがあります。
lease {
interface "eth0";
...
}
lease {
interface "wlan3";
fixed-address 192.168.0.108;
option subnet-mask 255.255.255.0;
...
}
削除する構成ブロックですinterface "wlan3";
。
カスタムgrep関数を作成しようとしましたが、すぐに複雑になりました。
これは一般的な問題のようです。この形式の設定ファイルを処理する便利なソリューションを持っている人はいますか?
答え1
そしてawk
:
awk -v RS='}' 'NF && ! /interface "wlan3";/{print $0"}"}' infile
出力は次のとおりです。
lease {
interface "eth0";
...
}