我必须显示下面的数字:
<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
提前致谢
答案 0 :(得分:1)
您可以使用以下grep命令使用PCRE正则表达式。
$ grep -Pzo '<td class="sorted"><strong>Impact Factor </strong></td>[^>]*>\K\d+(?:\.\d+)?' file
162.500
答案 1 :(得分:0)
您可以使用grep的-A选项获取下一行:
grep 'sorted' -A1 $i|grep -v sorted|grep td|cut -d">" -f2|cut -d"<" -f1
(注意:为简洁起见,我缩短了第一个grep搜索字符串)