Linux grep命令的用法
grep 的全称为 global search regular expression and print out the line,它是 Linux 里一款强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配到的行打印出来。
grep 工具还有个“哥哥”和“弟弟”,分别是 egrep 和 fgrep,它们分别用于不同的场景。
grep 命令的语法格式如下:
【实例 1】使用 grep 搜索包含特定文本的行。例如想在文件 example.txt 中搜索包含单词 "hello" 的所有行,可以使用以下命令:
【实例 2】使用 -i 选项可以进行不区分大小写的搜索。例如,搜索 "HELLO" 和 "hello":
【实例 3】使用 -n 选项可以在输出中显示匹配行的行号。例如:
【实例 4】可以同时对多个文件使用 grep。例如,同时搜索两个文件中的 "hello":
grep 工具还有个“哥哥”和“弟弟”,分别是 egrep 和 fgrep,它们分别用于不同的场景。
- grep:原生的 grep 命令,使用标准正则表达式作为匹配标准;
- egrep:扩展版的 grep,相当于 grep-E,使用扩展正则表达式作为匹配标准;
- fgrep:简化版的 grep,不支持正则表达式,但搜索速度快,系统资源使用率低。
grep 命令的语法格式如下:
grep [选项] 匹配规则 文件名grep 命令将根据匹配规则去匹配文本内容。grep 命令的常用选项见下表。
常用选项 | 说 明 |
---|---|
-c | 打印符合要求的个数 |
-i | 忽略大小写的差别 |
-n | 输出符合要求的行及其行号 |
-o | 只显示匹配到的字符(串) |
-q | 静默模式,不输出 |
-r | 当指定要查找的是目录而非文件时,遍历所有的子目录 |
-v | 反向查找,也就是打印不符合要求的行 |
-A n | A 后面跟一个数字 n,打印符合要求的行及其下面 n 行 |
-B n | B 后面跟一个数字 n,打印符合要求的行及其上面的 n 行 |
-C n | C 后面跟一个数字 n,打印符合要求的行及其上下各 n 行 |
-E | 使用扩展正则表达式,egrep = grep -E |
-H | 当搜索多个文件时,显示匹配文件名前缀 |
-h | 当搜索多个文件时,不显示匹配文件名前缀 |
-P | 调用的 Perl 正则表达式 |
--color | 高亮匹配上的字符串,grep 命令默认带此选项 |
【实例 1】使用 grep 搜索包含特定文本的行。例如想在文件 example.txt 中搜索包含单词 "hello" 的所有行,可以使用以下命令:
grep 'hello' example.txt
【实例 2】使用 -i 选项可以进行不区分大小写的搜索。例如,搜索 "HELLO" 和 "hello":
grep -i 'hello' example.txt
【实例 3】使用 -n 选项可以在输出中显示匹配行的行号。例如:
grep -n 'error' log.txt
【实例 4】可以同时对多个文件使用 grep。例如,同时搜索两个文件中的 "hello":
grep 'hello' file1.txt file2.txt