Grep$_会话[';id';]仅在php文件中
仅在PHP文件中尝试grepGrep$_会话[';id';]仅在php文件中,php,linux,grep,pattern-matching,Php,Linux,Grep,Pattern Matching,仅在PHP文件中尝试grep$\u会话['id'] grep -r --include="*.php" "SESSION\['id'\]" /var/www/ > grep.txt 但是我在grep.txt中得到了一些可怕的东西,不仅仅是匹配 如何编写正确的语法?问题在于,$\uu在双引号中进行解释:grep“$var”正在查找$var的内容,而grep'$var'正在查找文本字符串$var 因此,您需要使用单引号来避免这种情况。由于您的模式已包含单引号,我们必须关闭并再次打开: '$_
$\u会话['id']
grep -r --include="*.php" "SESSION\['id'\]" /var/www/ > grep.txt
但是我在grep.txt
中得到了一些可怕的东西,不仅仅是匹配
如何编写正确的语法?问题在于,
$\uu
在双引号中进行解释:grep“$var”
正在查找$var
的内容,而grep'$var'
正在查找文本字符串$var
因此,您需要使用单引号来避免这种情况。由于您的模式已包含单引号,我们必须关闭并再次打开:
'$_SESSION['"'"'id'"'"']'
总而言之:
grep -r --include="*.php" '$_SESSION['"'"'id'"'"']' /var/www/ > grep.txt
丑陋,我知道。问题是,
$\uu
在双引号中被解释:grep“$var”
正在查找$var
的内容,而grep'$var'
正在查找文本字符串$var
因此,您需要使用单引号来避免这种情况。由于您的模式已包含单引号,我们必须关闭并再次打开:
'$_SESSION['"'"'id'"'"']'
总而言之:
grep -r --include="*.php" '$_SESSION['"'"'id'"'"']' /var/www/ > grep.txt
丑陋,我知道。希望我能找到那个给GNU grep选项来搜索文件的家伙,问他为什么,谁告诉他这样做是合理的 无论如何。。。查找文件的UNIX工具名为
find
:
find /var/www -name '*.php' | xargs grep -F "\$_SESSION['id']"
但愿我能找到那个给GNU grep选项来搜索文件的家伙,问他为什么,谁告诉他这样做是合理的 无论如何。。。查找文件的UNIX工具名为
find
:
find /var/www -name '*.php' | xargs grep -F "\$_SESSION['id']"
我使用名为“”的命令行工具。默认情况下,它只搜索“源代码”,但您也可以将搜索范围缩小到特定的文件扩展名(例如,
--php
匹配“.php.phpt.php3.php4.php5.phtml”的文件扩展名,以及其中带有“php”的#!行)
您还可以将其设置为默认情况下也忽略特定目录-我已将本地配置设置为不进入供应商/目录
ack --php "\$_SESSION['id']"
$
仍然必须被引用-尽管这是因为外部双引号。我使用一个名为“”的命令行工具。默认情况下,它只搜索“源代码”,但您也可以将搜索范围缩小到特定的文件扩展名(例如,--php
匹配“.php.phpt.php3.php4.php5.phtml”的文件扩展名,以及其中带有“php”的#!行)
您还可以将其设置为默认情况下也忽略特定目录-我已将本地配置设置为不进入供应商/目录
ack --php "\$_SESSION['id']"
$
仍然必须被引用-尽管这是因为外部双引号。我应该转义方括号吗?同样的垃圾不仅仅是matches@DmitrijHolkin你在哪里看到这些垃圾?是在grep.txt中还是在您的屏幕中?如果我删除$grep-Fr--include=“*.php”SESSION['id']”/var/www/>grep.txt
,则更新您的问题,显示示例输出YEP everithing ok,似乎是$\ucode>造成了另一个问题results@DmitrijHolkin好的,那么问题在于将$\uu
解释为在双引号内。如果您键入echo$\uu
,您将看到它有一些值。所以我们要做的就是使用单引号:“$”会话[''''''''id''''']].
应该成功。我应该转义方括号吗?同样的垃圾不仅仅是matches@DmitrijHolkin你在哪里看到这些垃圾?是在grep.txt中还是在您的屏幕中?如果我删除$grep-Fr--include=“*.php”SESSION['id']”/var/www/>grep.txt
,则更新您的问题,显示示例输出YEP everithing ok,似乎是$\ucode>造成了另一个问题results@DmitrijHolkin好的,那么问题在于将$\uu
解释为在双引号内。如果您键入echo$\uu
,您将看到它有一些值。所以我们要做的是使用单引号:'$\u SESSION['''''''''''''''''''''''''']
应该可以。输出是180 Mb的垃圾,不仅仅是匹配的模式,只是随机的php文件,我会在较小的目录下尝试。