Linux系统中使用grep命令,查找包含某字符串的文件

我们在windows查找包含包含某些文字的文件时,通过高级查找工具可以很方便的做到,一次在linux要用到这一功能时却犯了难,我们知道使用find -name 命令可以根据文件名来查找,但具体到文件里面的内容时就做不到了,经查找资料用grep这一命令可以满足我们的需要,现总结如下

grpe命令格式

grep 「选项」 “查找的内容” 「查找文件的路径」

实例

1-在当前目录下查找所有包含有“测试”内容的文件

robin@robin-Lenovo:~$ grep -rn “测试” ./

  • -r 是递归查找所有符合条件的内容
  • -n 是显示查找到的“字符串”所在文件中的行号

参考内容

用法: grep [选项]… PATTERN [FILE]…
Search for PATTERN in each FILE.
Example: grep -i 'hello world' menu.h main.c
Pattern selection and interpretation:
-E, --extended-regexp PATTERN is an extended regular expression
-F, --fixed-strings PATTERN is a set of newline-separated strings
-G, --basic-regexp PATTERN is a basic regular expression (default)
-P, --perl-regexp PATTERN is a Perl regular expression
-e, --regexp=PATTERN 用 PATTERN 来进行匹配操作
-f, --file=FILE 从 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小写
-w, --word-regexp 强制 PATTERN 仅完全匹配字词
-x, --line-regexp 强制 PATTERN 仅完全匹配一行
-z, --null-data 一个 0 字节的数据行,但不是空行
杂项:
-s, --no-messages 不显示错误信息
-v, --invert-match 选中不匹配的行
-V, --version 显示版本信息并退出
--help 显示此帮助并退出
输出控制:
-m, --max-count=NUM stop after NUM selected lines
-b, --byte-offset print the byte offset with output lines
-n, --line-number 显示行号
--line-buffered flush output on every line
-H, --with-filename print file name with output lines
-h, --no-filename suppress the file name prefix on output
--label=LABEL use LABEL as the standard input file name prefix
-o, --only-matching 只显示匹配PATTERN 部分的行
-q, --quiet, --silent 不显示所有常规输出
--binary-files=TYPE 设定二进制文件的TYPE 类型;
-D, --devices=ACTION 读取设备、先入先出队列、套接字的方式;
ACTION 可以是read或skip'
-r, --recursive 等同于--directories=recurse
-R, --dereference-recursive 同上,但遍历所有符号链接
--include=FILE_PATTERN 只查找匹配FILE_PATTERN 的文件
--exclude=FILE_PATTERN 跳过匹配FILE_PATTERN 的文件和目录
--exclude-from=FILE 跳过所有除FILE 以外的文件
--exclude-dir=PATTERN 跳过所有匹配PATTERN 的目录。