メッセージ定義を含む 1 つのファイルから値を抽出し、それらを使用して構成ファイルを更新する 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 を含むすべてのソリューションを受け入れます。