使用grep从本地文件中的HTML标记中获取文本
可能重复:
RegEx匹配除XHTML自包含标签之外的开放标签
摘录自输入文件
<TD class="clsTDLabelWeb" width="28%">Municipality: </TD>
<TD style="WIDTH: 394px" class="clsTDLabelSm" colSpan="5">
<span id="DInfo1_Municipality">JUPITER</span></TD>
我的正则表达式
(?<=<span id="DInfo1_Municipality">)([^</span>]*)
我有一个HTML文件保存到磁盘。 我想使用grep来搜索文件并输出特定范围的内容 ,但我不知道这是否正确使用grep。 当我从另一个文件读取表达式的文件上运行grep(所以我不会乱搞任何特殊字符),它不会输出任何内容。 我已经在RegExr中测试了表达式,并且它匹配了“JUPITER”,这正是我想要返回的。 非常感谢你的帮助!
期望的输出
JUPITER
试试这个:
sed -n 's|^<span id="DInfo1_Municipality">([^<]*)</span></TD>$|1|p' file
或与GNU grep
和你的正则表达式:
grep -Po '(?<=<span id="DInfo1_Municipality">)([^</span>]*)'
Grep不支持这种类型的正则表达式(lookbehind assertions),它是一个非常糟糕的工具,但是对于这个例子来说,它是可行的,将会在许多工具中破裂。
grep -io "<span id="DInfo1_Municipality">.*</span>" file.htlm | grep -io ">[^<]*" | grep -io [^>]*
像这样疯狂的东西,不是一个好主意。
sed -n '/DInfo1_Municipality/s/</span.*//p' file | sed 's/.*>//'
链接地址: http://www.djcxy.com/p/76857.html
上一篇: Getting text from inside an HTML tag within a local file with grep