我正在编写一个 perl 脚本,它从一个带有消息定义的文件中提取值,并使用它们来更新配置文件。
例如:
消息定义文件 (ICD.txt):
MESSAGE: FOO_TELEM
latitude [-90,90]
longitude [-180,180]
MESSAGE: FOO_FREQUENCY
airPressure [0,50]
engineSpeed [0,65500]
FOO_TELEM 消息的成员纬度范围为 -90 到 90,经度范围为 -180 到 180。
配置文件(Config.txt):
MessageTable
Message FOO_TELEM
Member latitude DOUBLE End-Member
Member longitude DOUBLE End-Member
End-Message
Message FOO_FREQUENCY
Member airPressure ULONG End-Member
Member engineSpeed ULONG End-Member
End-Message
End-MessageTable
我希望能够使用消息定义文件 (ICD.txt) 中包含的约束值更新配置文件 (Config.txt),以便结果如下所示:
更新的配置文件 (Config.txt):
MessageTable
Message FOO_TELEM
Member latitude DOUBLE CONSTRAINT -90 90 End-Member
Member longitude DOUBLE CONSTRAINT -180 180 End-Member
End-Message
Message FOO_FREQUENCY
Member airPressure ULONG CONSTRAINT 0 50 End-Member
Member engineSpeed ULONG CONSTRAINT 0 65500 End-Member
End-Message
End-MessageTable
我尝试了各种形式的 grep 来获得我需要的结果,但都没有成功。任何建议将不胜感激。我对任何涉及 grep、sed 和/或 perl 的解决方案持开放态度。