我使用下面的正则表达式来单独提取标签。这在notepad ++和regexr.com中工作正常,但在使用grep时无效。
正则表达式
<message>[\s\S]*?<\/message>
示例文字
<message>
<tag1>1</tag1>
<tag2>Car</tag2>
</message>#@#
<message>
<tag1>2</tag1>
<tag2>Bus</tag2>
</message>#@#
<message>
<tag1>3</tag1>
<tag2>Car</tag2>
</message>#@#
<message>
<tag1>4</tag1>
<tag2>Truck</tag2>
</message>
grep的
grep -r "<message>[\s\S]*?<\/message>" LNBK-XML_1_0_05112017_040000.txt
答案 0 :(得分:0)
使用
grep -P "<message>[\s\S]*?<\/message>" LNBK-XML_1_0_05112017_040000.txt
这使用Perl
的非贪婪语法,默认情况下不会激活。