Bash 用awk解析HTML代码段

Bash 用awk解析HTML代码段,bash,awk,gawk,Bash,Awk,Gawk,我正在尝试使用awk解析HTML文档 文档包含多个,假设每个块中只有数字和逗号出现在感兴趣的数字部分 awk -v RS='<[/]?div[^>]*>' '/span/ && /people/{gsub(/[^[:digit:],]/, ""); print}' file.txt awk-v RS=']*>''/span/&&/people/{gsub(/[^[:digit:],]/,'');print}'file.txt 为什么使用awk解析HTML?使用

我正在尝试使用awk解析HTML文档

文档包含多个
,假设每个
块中只有数字和逗号出现在感兴趣的数字部分

awk -v RS='<[/]?div[^>]*>' '/span/ && /people/{gsub(/[^[:digit:],]/, ""); print}' file.txt
awk-v RS=']*>''/span/&&/people/{gsub(/[^[:digit:],]/,'');print}'file.txt

为什么使用awk解析HTML?使用更好的工具,如PHP及其DOMparser@anubhava因为我只需要一页中的几项信息,而bash脚本生成的
curl | awk
后台任务在~1分钟内完成10000页。从内存和CPU的角度来看,PHP都太贵了。我不太确定PHP会不会太贵,因为它可以在同一代码中完成curl部分和以后的解析部分,所以基本上您只能从命令行调用1个二进制文件。更重要的是,使用DOM进行解析也将是准确的。只有当您100%确定此HTML的位置和组织结构时,才可以使用sed/awk进行解析。@glennjackman,很好,已修复。不知道为什么
**
会起作用!
awk -v RS='<[/]?div[^>]*>' '/span/ && /people/{gsub(/[^[:digit:],]/, ""); print}' file.txt