@ubuntu:/tmp$ cat one.xml
<?xml version="1.0" encoding="UTF-8"?>
<e2frontendstatus>
<e2snrdb>
12.10 dB
</e2snrdb>
<e2snr>
75 %
</e2snr>
<e2ber>
0
</e2ber>
<e2acg>
99 %
</e2acg>
</e2frontendstatus>
@ubuntu:/tmp$ sed -n -e 's/.*<e2ber>\([0-9][0-9]*\)<\/e2ber>.*/\1/p' one.xml
@ubuntu:/tmp$
我想獲取值之間。但它不工作,我做錯了什麼?grep,xml問題
它不工作,因爲你必須在那裏換行......這將是可行的與SED或AWK,我敢肯定,但在Perl很可能會更幸福......你有可用? – Cascabel 2010-06-18 22:07:51
問題是,sed一次將正則表達式應用於一行。由於和 位於不同的行上,因此它們不與表達式匹配。 您可以更改文件格式類似 ?那麼你可以更容易地識別這條線。 –
2010-06-18 22:09:48
我們應該問的另一個問題是您的確切要求。我知道你的資源有限,所以你不會完全解析XML,所以你的健壯性會受到限制。我希望,至少可以指望XML文件不會做太瘋狂。 – Cascabel 2010-06-18 22:09:55