1

所以这是我要解析的配置文件的一个片段(它是一个 LVM2 配置):

VolGroup00 {
    id = "vyllep-rfI6-LCvO-h6mN-zYZu-hiAN-QShmG6"
        seqno = 3
        status = ["RESIZEABLE", "READ", "WRITE"]
        flags = []
        extent_size = 65536             # 32 Megabytes
        max_lv = 0
        max_pv = 0
        metadata_copies = 0

        physical_volumes {

                pv0 {
                        id = "1yLiSl-x0fp-ZkyU-HMQl-eTVt-xiId-cFnih0"
                        device = "/dev/xvda2"   # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 31246425     # 14.8995 Gigabytes
                        pe_start = 384
                        pe_count = 476  # 14.875 Gigabytes
                }
        }
}

我想将其解析为 Perl 数据结构。这个配置是什么格式的?我的猜测是它看起来像一个 python 数据结构。

任何想法的格式,或者更好的是,一个现有的模块来解析它?

4

1 回答 1

8

该配置使用专门用于 LVM 的自定义配置语言。lvm 用户空间工具包括解析这种语言的代码。

您可以获取lvm2 的用户空间代码并尝试复制其解析器,可能使用Parse::RecDescent

或者也许CPAN 中的 Perl Linux::LVM 模块提供了提取所需信息的功能。

于 2012-04-17T00:53:26.153 回答