我正在尝试找到一种方法来扫描整个Linux系统,查找包含特定文本字符串的所有文件.只是为了澄清,我在文件中寻找文本,而不是文件名.
当我查找如何做到这一点时,我遇到了两次这个解决方案:
find / -type f -exec grep -H 'text-to-find-here' {} \;
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.它似乎显示系统中的每个文件.
这是否接近正确的方法呢?如果没有,我该怎么办?这种在文件中查找文本字符串的能力对于我正在做的一些编程项目非常有用.
如何创建检测文本中十六进制数字的正则表达式?
例如,'0x0f4','0acdadecf822eeff32aca5830e438cb54aa722e3'和'8BADF00D'.
我正在努力熟悉终端的基础知识。我想在我的 CMS 网站中找到包含我的 Google Analytics 跟踪代码“gaq”作为搜索字符串的文件应该可以解决问题。
我的桌面上有一个文件夹,其中包含所有站点文件。
/用户/我的名字/桌面/网站
我打开终端并尝试
grep gaq /Users/myname/Desktop/website
grep gaq * /Users/myname/Desktop/website
Run Code Online (Sandbox Code Playgroud)
我在 SO 和 Google 上搜索过,但互联网似乎挤满了涉及正则表达式和条件的 grep 稍微更高级的用法。
例如: 列出包含字符串但 *NOT* 包含另一个字符串的文件的 Unix 命令,如何使用 grep 在文件夹中查找单词?.
我以为我已经在第二个示例问题中找到了答案。我尝试了以下命令:grep -nr gaq* /Users/myname/Desktop/website
但这返回了许多结果,据我所知,我的搜索字符串并不完全准确匹配。
这是通过查看 html 页面源获取的 Google Analytics 代码段示例。我的目标是找到生成分析代码段的文件,以便将其更新到较新版本的 Google Analytics:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['_trackPageview']);
Run Code Online (Sandbox Code Playgroud)
所以我使用“gaq”作为搜索字符串。
我意识到这听起来一定很基本,但作为 shell 的初学者,这很令人沮丧。
我将如何使用 grep 在目录 /Users/myname/Desktop/website 中搜索包含分析代码的文件(返回文件而不是实际的文本段落)(假设 grep 是我应该使用的命令?)