我在尝试从html文件中提取单词时遇到了很多麻烦。 html文件中的行如下所示:
<span id="result">WORD</span>
我试图让WORD退出但我无法理解。到目前为止我已经:
grep 'span id="result"' FILE
哪个让我上线。我也试过了:
sed -n '/<span id="result">/,/<\/span>/p' FILE
也不起作用。 我知道这可能是一个非常简单的问题,但我刚刚开始,所以我真的可以使用一些帮助。
答案 0 :(得分:2)
答案 1 :(得分:1)
这是awk
的任务
我猜你在同一个文件中有其他行,所以必须搜索span id
。
echo "<span id="result">WORD</span>" | awk -F"[<>]" '/span id/ {print $3}'
WORD
答案 2 :(得分:0)
你可以尝试
awk -f ext.awk input.html
其中input.html
是您的输入html文件,ext.awk
是
{
line=line $0 RS
}
END {
match (line,/<span id="result">([^<]*)<\/span>/,a)
print a[1]
}
这将在换行符中提取内容..
答案 3 :(得分:0)
使用grep
向后引用:
grep -Po '(?<=<span id="result">)\w+'
parenthèses之间的表达是一个向后引用;它没有被捕获但是作为以下正则表达式部分的测试:如果表达式出现,捕获的模式在此处仅为\w+
。添加选项-o
仅输出单词;选项-P
启用了前向和后向引用。
如果您想修改此正则表达式,请注意,对于grep
,后向引用必须具有固定大小。