1

不使用 XML 解析器 我想获取 XML 标记的内容,所以我的 XML 文件看起来像(包括的不仅仅是 XML,这只是 XML 部分)

<ns1:CarrierServiceId>PD_PRIVATPAKKER_W</ns1:CarrierServiceId>
<ns1:LabellingReturned>0</ns1:LabellingReturned>
<ns1:DeliveryDate>2012-07-27T23:00:00Z</ns1:DeliveryDate>
<ns1:DespatchDate>2012-07-26T22:59:59Z</ns1:DespatchDate>
<ns1:International>0</ns1:International>
<ns1:ClearanceDocumentation>0</ns1:ClearanceDocumentation>
<ns1:ExceptionCode>0</ns1:ExceptionCode>

我将如何获得 CarrierServiceId 的内容,所以我只获得 PD_PRIVATPAKKER_W 而没有其他我设法使用下面的行,但我需要内容

FOUND=$(awk '/<ns1:CarrierServiceId>/ {print $1}' TEST.tmp)

echo "${FOUND}"
4

2 回答 2

1

使用尖括号作为分隔符并打印该字段。

FOUND=$(awk -F '[<>]' '/<ns1:CarrierServiceId>/ {print $3}' TEST.tmp)
于 2012-06-15T14:58:34.617 回答
1

grep

grep -Po '(?<=CarrierServiceId>).*?(?=<)' inputFiles
于 2012-06-15T15:00:11.747 回答