排序 dhcpd.conf

排序 dhcpd.conf

我们有一个共同的dhcpd我们为沙盒服务器设置固定 IP 的服务器。由于子网的限制,我们无法避免被迫分配有限且小范围的静态 IP 地址。

由于此人和其他同事从dhcpd.conf文件中添加/删除主机,因此现在文件相当长且混乱,应该对其进行整理。

由于所有 ip 声明都遵循以下模式:

host foo {
  hardware ethernet 00:00:00:00:00:00;
  fixed-address 192.168.192.X;
}

这可以用 来完成吗awk?如果是这样,怎么办?我从来没有尝试过用它来完成如此复杂的事情。

答案1

是的,这可以通过以下方式完成awk

BEGIN { RS = "}"; }
{
    match($0, /fixed-address ([^;]+);/, array);
    data[array[1]] = $0;
}
END {
    n = asorti(data, dest);
    for (i = 1; i <= n; i++) {
        print data[dest[i]] RS;
    }
}

相关内容