我必须显示下面的数字:
<td class="sorted"><strong>Impact Factor </strong></td>
<td>162.500</td>
我试过grep,sed,awk,但就是无法正常工作。数字在下一行,我曾尝试使用 find 来定位顶部代码并将其存储为名为 $temp 的变量。然后尝试打印下一行,希望删除后面的td引号。
下面是我的代码谢谢!
temp=$(fgrep '<td class="sorted"><strong>Impact Factor </strong></td>' $i)
impact=$(sed -n '/$temp/ {n;P}' $i)
$i存储了一个 html 页面。
我可以使用这部分代码将数字传送出去| head -n 1 | cut -d'>' -f4- | cut -d'<' -f1
否则,但目标是 162.5
提前致谢
您可以使用下面的 grep 命令,该命令使用 PCRE 正则表达式。
$ grep -Pzo '<td class="sorted"><strong>Impact Factor </strong></td>[^>]*>Kd+(?:.d+)?' file
162.500
您可以使用 grep 的 -A 选项来获取下一行:
grep 'sorted' -A1 $i|grep -v sorted|grep td|cut -d">" -f2|cut -d"<" -f1
(注意:为了简洁起见,我缩短了第一个 grep 搜索字符串)