grep
是一个强大的文本搜索工具,它利用正则表达式来查找文件中的匹配行,并将这些行输出。grep
代表“全局正则表达式打印”(Global Regular Expression Print),是 Unix 和类 Unix 系统中用于文本搜索的标准工具之一。
基本语法
grep [选项] 模式 [文件...]
- 模式:这是想要在文件中搜索的字符串或正则表达式。
- 文件:可以是一个或多个文件名。如果未指定文件,则
grep
将从标准输入读取数据。
常用选项
-i
或--ignore-case
:忽略大小写差异。-v
或--invert-match
:反转匹配,即只显示不匹配的行。-n
或--line-number
:在输出的每行前添加该行在文件中的行号。-c
或--count
:仅打印匹配到的行数,而不是具体的行内容。-l
或--files-with-matches
:仅打印包含匹配内容的文件名。-L
或--files-without-match
:仅打印不包含匹配内容的文件名。-r
或-R
或--recursive
:递归地在目录下所有文件中查找。-w
或--word-regexp
:仅匹配完整的单词。-x
或--line-regexp
:仅匹配整行。-o
或--only-matching
:仅打印匹配的部分,而不是整行。-A n
、-B n
、-C n
:分别表示打印匹配行之后的 n 行、之前的 n 行以及前后各 n 行的内容。
示例
-
基础搜索
在文件
example.txt
中搜索包含 “hello” 的行:grep "hello" example.txt
-
忽略大小写
搜索时忽略大小写差异:
grep -i "hello" example.txt
-
显示行号
显示匹配行的同时显示行号:
grep -n "hello" example.txt
-
反向匹配
只显示不包含 “hello” 的行:
grep