如何在 Linux 中查找所有包含 #page-title 的 css 文件?

如何在 Linux 中查找所有包含 #page-title 的 css 文件?

我知道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'

相关内容