2013-07-08 66 views
1

我想熟悉终端的基础知识。我想在我的CMS网站中找到包含我的Google Analytics(分析)跟踪代码“gaq”作为搜索字符串的文件。grep找到目录中包含字符串的文件

有一个包含所有站点文件的我的桌面上的文件夹。

/用户/ MYNAME /桌面/网站

我打开终端,并试图

grep gaq /Users/myname/Desktop/website 

grep gaq * /Users/myname/Desktop/website 

我搜索的SO和谷歌,但上网本似乎挤占了与更高级一些的用途涉及正则表达式和条件的grep。

例如: Unix Command to List files containing string but *NOT* containing another string,How can I use grep to find a word inside a folder?

我想我已经找到了第二个问题的答案。我想下面的命令:grep -nr gaq* /Users/myname/Desktop/website

但是,许多返回结果,从我所看到的,准确不准确我的搜索字符串匹配。

下面是谷歌Analytics(分析)片段,通过查看HTML页面的源采取的样本。我的目标是找到产生的分析,以片断将其更新到谷歌Analytics(分析)的较新版本的文件:

var _gaq = _gaq || []; 
      _gaq.push(['_setAccount', 'UA-xxxxxxxx-1']); 
      _gaq.push(['_trackPageview']); 

所以我用“GAQ”作为要搜索的字符串。

我知道这听起来一定很基本的,但它是作为一个初学者到外壳非常令人沮丧的。

我将如何使用grep搜索包含分析代码的文件(返回文件不是文本的实际段落)/ Users/myname/Desktop/website(假设grep是我应该使用的命令? )

回答

2

来源:man grep

有用于--files-with-matches-l

grep -Rl gaq /Users/myname/Desktop/website 
+0

谢谢,确实工作 –

0

两个例子一个选项:

grep -nr '/users/myname/Desktop/website' -e "gaq" 
    grep -nrw '/users/myname/Desktop/website' -e "gaq" 

什么选项意味着:

-n,--line数 前缀与它的输入文件中的基于1的行号输出的每一行。 (-n由POSIX指定)

-r, - 递归 只有在命令行上,才会递归读取每个目录下的所有文件。这相当于-d递归选项。

-w,--word-regexp的 选择只含有形成完整的词的匹配的那些行。测试是匹配的子字符串必须位于行首,或者以非字 组成字符开头。同样,它必须位于行尾,或者后面跟着一个非单词组成字符。字成分字符是字母,数字和 下划线。

相关问题