1

我有这个文件:

<?xml version="1.0" encoding="utf-8"?>
<response>
        <Count>1</Count>
        <Messages>
                <Message>
                        <Smstat>0</Smstat>
                        <Index>40001</Index>
                        <Phone>234</Phone>
                        <Content>Poin Bonstri kamu: 358

Sisa Kuota kamu :
Kuota WA.Line 18 MB s.d 06&#x2F;08&#x2F;2019 19:33:46
Kuota Reguler 1478 MB s.d 02&#x2F;08&#x2F;2019 05:36:44
Temukan beragam paket lain di bima+ https:&#x2F;&#x2F;goo.gl&#x2F;RQ1DBA</Content>
                        <Date>2019-08-01 13:28:04</Date>
                        <Sca></Sca>
                        <SaveType>4</SaveType>
                        <Priority>0</Priority>
                        <SmsType>2</SmsType>
                </Message>
        </Messages>
</response>

我想匹配 和 之间的<Content>文本</Content>。我试过了:

tr '\n' ' ' < input_file | grep -E "^<Content>.*</Content>$"

但它不起作用。请注意,我使用ashshell 而不是bash. 我该怎么做呢 ?

4

1 回答 1

0

如果你有 PCRE 能力grep,你可以使用积极的前瞻和 -behind:

$ tr '\n' ' ' < file | grep -Po "(?<=<Content>).*(?=</Content>)"

输出:

Poin Bonstri kamu: 358  Sisa Kuota kamu : Kuota WA.Line 18 MB s.d 06&#x2F;08&#x2F;2019 19:33:46 Kuota Reguler 1478 MB s.d 02&#x2F;08&#x2F;2019 05:36:44 Temukan beragam paket lain di bima+ https:&#x2F;&#x2F;goo.gl&#x2F;RQ1DBA
于 2019-08-01T06:48:32.207 回答