Answers:
egrep -ir --include=*.{php,html,js} "(document.cookie|setcookie)" .
该r标志意味着递归搜索(搜索子目录)。该i标志表示不区分大小写。
如果只需要文件名,请添加l(lowercase L)标志:
egrep -lir --include=*.{php,html,js} "(document.cookie|setcookie)" .
grep -E ... >egrep ...
grep: (error|fail): No such file or directory在Ubuntu Desktop 16上出现错误;有什么提示吗?
--include=\*.{php,html,js}
尝试类似的东西 grep -r -n -i --include="*.html *.php *.js" searchstrinhere .
这-i使得它不敏感
在.你想从你的当前目录开始结束手段,这可以与任何目录取代。
在-r目录树下递归地执行此操作
在-n打印匹配项的行号。
将--include让你添加的文件名,扩展名。接受通配符
有关更多信息,请参见:http : //www.gnu.org/software/grep/
-l选项(仅打印匹配的文件名)代替-n
find他们和grep字符串:
这将在/ starting / path和grep中找到您3种类型的所有文件,以用于正则表达式'(document\.cookie|setcookie)'。用反斜杠分成2行只是为了提高可读性...
find /starting/path -type f -name "*.php" -o -name "*.html" -o -name "*.js" | \
xargs egrep -i '(document\.cookie|setcookie)'
-exec grep -l 'sth' {} \;
# egrep -ir --include=file.foo "(foo|bar)" /dir在〜500Gb weigth目录上最快超过5或8倍。
听起来像是一份完美的工作,grep或者也许是肯定的
或这个奇妙的结构:
find . -type f \( -name *.php -o -name *.html -o -name *.js \) -exec grep "document.cookie\|setcookie" /dev/null {} \;
-exec grep...优于我的xargs方法,因为它不会阻塞文件名中的空格。
find . -type f -print0 | xargs -0 -I {} grep "search_string" {}。当然,也可以添加其他选项。
仅包括另一种替代方法,您还可以使用以下方法:
find "/starting/path" -type f -regextype posix-extended -regex "^.*\.(php|html|js)$" -exec grep -EH '(document\.cookie|setcookie)' {} \;
哪里:
-regextype posix-extended告诉find我们期望什么样的正则表达式-regex "^.*\.(php|html|js)$"告诉find正则表达式本身文件名必须匹配-exec grep -EH '(document\.cookie|setcookie)' {} \;告诉find运行在-exec选项和\;它找到的每个文件之间指定的命令(及其选项和参数),其中{}表示该命令中文件路径的位置。
而
E选项告诉grep使用扩展的正则表达式(以支持括号)和...H选项告诉grep比赛之前打印的文件路径。而且,鉴于此,如果您只想要文件路径,则可以使用:
find "/starting/path" -type f -regextype posix-extended -regex "^.*\.(php|html|js)$" -exec grep -EH '(document\.cookie|setcookie)' {} \; | sed -r 's/(^.*):.*$/\1/' | sort -u
哪里
|[pipe] find在此之后将输出发送到下一个命令(sed然后是sort)r选项告诉sed您使用扩展的正则表达式。s/HI/BYE/告诉sed将“ HI”的每个“首次出现”(每行)替换为“ BYE”,然后...s/(^.*):.*$/\1/告诉它来代替正则表达式(^.*):.*$(意味着组 [东西由包围()],包括一切 [ .*从=一个或多个任意的字符的] 的行的开头 [ ^]直到“第一‘:’随后任何直到”的的端行 [ $])由替换后的正则表达式的第一组 [ \1]组成。u告诉sort删除重复项(sort -u作为可选项)。...远非最优雅的方式。正如我所说,我的目的是扩大可能性的范围(并就可以使用的某些工具给出更完整的说明)。