在 Linux 和 Mac 上查找包含字符串或文本的所有文件

有时在 linux/unix 计算机上,您会想要搜索其中包含特定字符串的任何文件。这在为 CI/CD 管道搜索特定事物时特别有用。

幸运的是,在 linux 中使用grep.

在 Linux 或 Macg 上查找包含特定字符串的所有文件#

仅返回文件名

下面将在“/views”目录中找到包含术语“html”的任何文件。它只会返回文件名。

grep -rl ./views -e 'html' 

返回文本本身

同样,这将在“/views”目录中找到包含字符串“html”的任何文件。它将返回其中包含该文本的行。

grep -r ./views -e 'html' 

Linux/Mac 上的 grep 选项#

您可以将其他选项串在一起,以获得不同的结果。例如,当我们说-r‘ 时,我们的意思是’递归’ – 即它将搜索每个文件夹。当我们写-rl时,这本质-r -l上意味着 ,这意味着递归搜索,并且只返回文件名。

下面是所有 grep 选项或开关的列表,您可以将其添加到查询中以获得所需的结果:

  • -r – 递归搜索。
  • -l – 只返回文件名。
  • -i – 忽略大小写。
  • -w – 仅搜索单词,即不搜索单词中的文本。例如,如果我们搜索“html”,那么 somehtmltext 将不匹配。
  • -n – 返回行号,但不适用于-l.
  • -s – 禁止任何错误消息。
  • -h – 输出行本身,不带行号或文件。
  • -v – 反转搜索,即搜索html-v返回没有 html 的所有内容。
  • -f – 用于指示您要使用的包含正则表达式的文件。
  • -x – 仅匹配整行。如果它单独存在于它自己的行中,这只会返回对html的搜索。

发表评论

邮箱地址不会被公开。 必填项已用*标注