推斷我有一個實用工具,可以大量的XML標籤內解析的屬性,如非貪婪的文本匹配,並在bash
<mytag name="value" name="value"../>
我已經寫在Perl程序。它採用基本非貪婪文本匹配,就像這樣:
while(<XML>)
{
if (/name=\"(.+?)\"/)
{
print("Value is: $1\n");
}
我知道我要提取的名稱/值對的名字,所以我硬編碼到他們的效用。
這對我來說工作得很好......我該如何在bash中做到這一點?我嘗試過使用awk
,但它不起作用,因爲我有像name="value with spaces in the middle"
這樣的屬性。
使用awk,我需要知道我想提取的名稱/值對的索引 - 例如我的第三組的awk { print $3 }
。如果這些值在中間沒有空格,這可以正常工作,但如果它們這樣做了,它就會失敗,並且只有給出值纔會出現空格字符。
任何東西都會有幫助,謝謝。
這就是爲什麼我們建議使用XML解析器來解析XML。 – 2014-09-22 19:12:15
確實。如果您正在解析'xmlstarlet pyx'的輸出,那麼您可以更輕鬆地正確處理,因爲它將XML轉換爲面向行的格式,以便使用傳統的文本管理工具進行輕鬆解析。 – 2014-09-22 23:39:14