每次显示时,从两种模式之间获取文本

时间:2016-12-08 23:40:27

标签: linux unix awk sed grep

我正在尝试使用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>

这些段落标记中的每一个都在不同的单行上,而所有行都在同一个文件中。

我无法找到解决方案。如果可以,请帮忙。

2 个答案:

答案 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'