Grep$_会话[';id';]仅在php文件中

Grep$_会话[';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 因此,您需要使用单引号来避免这种情况。由于您的模式已包含单引号,我们必须关闭并再次打开: '$_

仅在PHP文件中尝试grep
$\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文件,我会在较小的目录下尝试。