AWK、SED 或 GREP 用于从 HTML 文件中提取数据

AWK、SED 或 GREP 用于从 HTML 文件中提取数据

谁能告诉我哪一个最适合从使用curl接收的html文件中提取以下数据。

<script>document.getElementById("test-summary").innerHTML = "<strong>Test Pages:</strong> 1 right, 0 wrong, 0 ignored, 0 exceptions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

我只需要 的部分1 right, 0 wrong, 0 ignored, 0 exceptions。基于以下标签: document.getElementById("test-summary").这些是一些测试结果,我需要根据这些结果做出一些逻辑。

如果有人可以就如何做到这一点提出建议,我将非常感激。

非常感谢,

伊斯特万·卡鲁瑟

答案1

不是超级优雅,但你可以:

sed -ne 's/.*"test-summary".* \([0-9][0-9]* right [^&].*exceptions\)&nbsp.*/\1/p'

例如:

$ echo '<script>document.getElementById("test-summary").innerHTML = "<strong>Test Pages:</strong> 1 right, 0 wrong, 0 ignored, 0 exceptions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' | sed -ne 's/.*"test-summary".* \([0-9][0-9]* right,[^&].*exceptions\)&nbsp.*/\1/p'
1 right, 0 wrong, 0 ignored, 0 exceptions

答案2

grepawk

grep 'document.getElementById("test-summary")' file.html | awk -F'</strong>|&' '{print $2}'

相关内容