我正在尝试使用Unix命令抓取一个html文件。我需要从两个标签中提取innerhtml文本,这些标签我一直在表示为正则表达式。诀窍是每次出现这种模式时我都需要获取innerhtml文本。
示例:
<p class = "someClass"> Text I need to get </p>
<p class = "someClass"> Some more I need to get </p>
<p class = "someClass"> Even more text I need to get </p>
这些段落标记中的每一个都在不同的单行上,而所有行都在同一个文件中。
我无法找到解决方案。如果可以,请帮忙。
答案 0 :(得分:1)
<强>的grep 强>
酷小技巧
grep -oP "(?<=>)[^<]*" file
grep的-P选项是gnu-only和experimental
或只是
grep -oP '(?<=<p class = "someClass"> ).*?(?= </p>)' file
<强> SED 强>
sed -n 's:.*<p class = "someClass">\(.*\)</p>.*:\1:p' file
答案 1 :(得分:-1)
这就是我所拥有的。
inner.txt将有你的输入。
cat inner.txt | awk -F">" '{print $2}' | sed 's/^[ \t]*//g;s/<\/p//g'