在bash中我想为.php|.html|.js包含不区分大小写的字符串的每个类型的文件返回文件名(以及文件的路径)"document.cookie" | "setcookie"
我该怎么办?
bea*_*4rw 202
egrep -ir --include=*.{php,html,js} "(document.cookie|setcookie)" .
Run Code Online (Sandbox Code Playgroud)
如果您只想要文件名,请添加r(小写i)标志:
egrep -lir --include=*.{php,html,js} "(document.cookie|setcookie)" .
Run Code Online (Sandbox Code Playgroud)
Rao*_*oul 49
尝试类似的东西 grep -r -n -i --include="*.html *.php *.js" searchstrinhere .
将-i使得情况insensitlve
在.末意味着你想从你的当前目录开始,这可能是与任何目录来代替.
这些-r方法在目录树下递归执行
在-n打印匹配项的行号.
将--include让你添加的文件名,扩展名.接受通配符
有关详细信息,请参阅:http://www.gnu.org/software/grep/
Mic*_*ski 15
find他们和grep字符串:
这将在/ starting/path中找到3种类型的所有文件,在正则表达式中找到grep '(document\.cookie|setcookie)'.使用反斜杠分割2行以方便阅读......
find /starting/path -type f -name "*.php" -o -name "*.html" -o -name "*.js" | \
xargs egrep -i '(document\.cookie|setcookie)'
Run Code Online (Sandbox Code Playgroud)
听起来像是一个完美的工作,grep或者可能是ack
或者这个美妙的建筑:
find . -type f \( -name *.php -o -name *.html -o -name *.js \) -exec grep "document.cookie\|setcookie" /dev/null {} \;
Run Code Online (Sandbox Code Playgroud)
find . -type f -name '*php' -o -name '*js' -o -name '*html' |\
xargs grep -liE 'document\.cookie|setcookie'
Run Code Online (Sandbox Code Playgroud)