从html页面获取文本,shell

从html页面获取文本,shell,shell,Shell,我试图从shell中的html页面获取文本,作为脚本的一部分,向我显示本地区域的温度 然而,我不知道如何正确使用grep 摘自网页 </div><div id="yw-forecast" class="night" style="height:auto"><em>Current conditions as of 8:18 PM GMT</em><div id="yw-cond">Light Rain Shower</div>

我试图从shell中的html页面获取文本,作为脚本的一部分,向我显示本地区域的温度

然而,我不知道如何正确使用grep

摘自网页

</div><div id="yw-forecast" class="night" style="height:auto"><em>Current conditions as of 8:18 PM GMT</em><div id="yw-cond">Light Rain Shower</div><dl><dt>Feels Like:</dt><dd>6 &deg;C</dd><dt>Barometer:</dt><dd style="position:relative;">1,015.92 mb and steady</dd><dt>Humidity:</dt><dd>87 %</dd><dt>Visibility:</dt><dd>9.99 km</dd><dt>Dewpoint
截至晚上8:18 GMT的当前状况小雨阵雨感觉:6度;CBarometer:1015.92 mb,稳定湿度:87%能见度:9.99公里露点
除了进一步削减

<dt>Feels Like:</dt><dd>6 &deg;C</dd>
感觉像:6°;C
试图抓住6°C的温度

我尝试过各种不同的策略,包括grep和awk。shell向导可以帮我吗?

试试看

grep -o -e "<dd>.*deg;C</dd>" the_html.txt


如果你想摆脱
,只需附加
|cut-b5-12

如果x是你的输入文件,HTML源代码的格式和你写的一样有规律,这应该是可行的--

grep deg x|sed-e“s#^.>([0-9]{1,2}\°[CF])尝试一下:

grep -Po '(?<=Feels Like:</dt><dd>).*?(?=</dd>)' | sed 's/ &deg;/°/'

$grep-o-e“[^对。更新了答案,包括如何去除那些dd-tags。谢谢,这个问题让我发疯了!好主意,我在考虑lookarounds,但读到它没有在
grep
中实现…
-P
起作用:-)
grep -Po '(?<=Feels Like:</dt><dd>).*?(?=</dd>)' | sed 's/ &deg;/°/'
6°C