我知道grep -irn "#page-title"
会搜索所有文件以查找匹配的文本,但出于性能原因,我想将搜索范围限制为 css 文件。在 Windows PowerShell 中,它是:
ls *.css -r | select-string "#page-title"
加分项,我如何将其限制为不以css_
答案1
find -name "*.css" ! -name "css_*" | xargs grep -H "#page-title"
find 是 unix 命令行 find,带有 2 组参数。第一个参数-name "*.css"
告诉 find 查找带有 CSS 扩展名的文件,参数! -name "css_*"
告诉 find 排除或忽略以 开头的文件css_
。然后,此文件列表通过管道传送到 xargs 命令,该命令将该列表作为参数传递到 grep 命令,该命令被告知从列表中查找“#page-title”,并使用参数打印文件名-H
。
答案2
这应该可以解决问题
grep -r --include="*.css" "#page-title" ./
答案3
我刚刚上传了 grepcss:https://github.com/Red-Seadog/grepcss
grepcss 理解 CSS 语言,因此你可以使用上面描述的 find 命令
| xargs grepcss -s '#page-title'