0
我試圖解析filelists.xml
(該RPM包的元數據)。從Bash或C解析filelists.xml?
標籤的樣子:
<package pkgid="b63972e0b2442412bd81bcb24065e264c02bc3fc" name="basesystem" arch="noarch"><version epoch="0" ver="10.0" rel="3_WR4.1.0.0" /></package>
我需要解析這個格式的數據:package.name-version.ver
例如在上面的例子中,它將返回:basesystem-10.0
我想使用bash或C.
在bash,我試圖與sed和awk命令。 與C,我試圖逐行閱讀,並開始採取「名稱= \」「和」「」之間的文本。 我認爲更好的方法來與bash再次嘗試。 –
我認爲這不是足夠的信息。一個好的選擇是使用'perl'或'python'的xml解析器,但我不知道哪個格式具有'filelists.xml'。如果所有線路有相同的元素,並在相同的順序或許'sed'或'awk'可以足夠多的屬性,但誰知道......鑑於輸入我會用手工複製提取數據和粘貼:-) – Birei
'egrep的 - o'(name | ver)=「[[:alnum:] \。] +」'| paste -s -d'\ n''會給你所需的鍵/值對。從那裏你可以手動解析出來,或者如果你對數據的安全性有信心,你可以用shell來「評估」它們。 – iscfrc