Bol*_*wyn 15 html xml grep selector findinfiles
我需要找到一堆HTML文件中的所有位置,它们位于以下结构(CSS)中:
div.a ul.b
Run Code Online (Sandbox Code Playgroud)
或XPath:
//div[@class="a"]//div[@class="b"]
Run Code Online (Sandbox Code Playgroud)
grep在这里没有帮助我.是否有一个命令行工具可以返回符合此标准的所有文件(以及可选的所有位置)?即,如果文件与某个HTML或XML结构匹配,则返回文件名.
Dav*_*vis 19
试试这个:
hxnormalize -l 240 -x filename.html | hxselect -s '\n' -c "label.black""label.black"CSS选择器在哪里唯一标识HTML元素的名称.编写一个名为的帮助脚本cssgrep:
#!/bin/bash
# Ignore errors, write the results to standard output.
hxnormalize -l 240 -x $1 2>/dev/null | hxselect -s '\n' -c "$2"
Run Code Online (Sandbox Code Playgroud)
然后你可以运行:
cssgrep filename.html "label.black"
Run Code Online (Sandbox Code Playgroud)
这将为label该类的所有HTML 元素生成内容black.另见:https://superuser.com/a/529024/9067
小智 8
我已经使用Node JS构建了一个命令行工具.您输入一个CSS选择器,它将搜索目录中的所有HTML文件,并告诉您哪些文件与该选择器匹配.
您需要将Element Finder安装cd到要搜索的目录中,然后运行:
elfinder -s "div.a ul.b"
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅http://keegan.st/2012/06/03/find-in-files-with-css-selectors/
至少有4个工具:
pup - 受到 jq 的启发,pup 旨在成为一种从终端探索 HTML 的快速灵活的方式。
htmlq - 类似于 jq,但针对 HTML。使用 CSS 选择器从 HTML 文件中提取内容。
hq - 使用 CSS 和 XPath 选择器的轻量级命令行 HTML 处理器。
xq - 命令行 XML 和 HTML 美化器和内容提取器。
例子:
$ wget http://en.wikipedia.org/wiki/Robots_exclusion_standard -O robots.html
$ pup --color 'title' < robots.html
<title>
Robots exclusion standard - Wikipedia
</title>
$ htmlq --text 'title' < robots.html
Robots exclusion standard - Wikipedia
$ hq --xpath '//title' < robots.html
<title>robots.txt - Wikipedia</title>
$ xq --xpath '//title' < robots.html
robots.txt - Wikipedia
Run Code Online (Sandbox Code Playgroud)