Grep - 在所有出现的标签之间获取文本

时间:2017-03-01 22:20:39

标签: grep

我已经接近了我的需求:

grep -o '<div class="item">.*</div>' file.html > result.html

除了这是第一个实例(包括标签本身,但我只想要标签内的文本,以及它之后的所有文本和标签,直到最后一个div的结束。所以给出:

<body><div class="item">text</div><h3>Hello</h3><div class="item">text2</div></body>

我试图获得:

text
text2

但是我得到了

<div class="item">text</div><h3>Hello</h3><div class="item">text2</div>

如何纠正?

1 个答案:

答案 0 :(得分:0)

虽然,我建议使用专门的工具来解析HTMLXML,但您可以使用positive lookbehind并将模式解释为与Perl兼容的正则表达式(PCRE){{1} }

grep -P

你明白了,

grep -oP '(?<=<div class="item">)[^<]*' file.html