首页 > 编程笔记 > Linux命令

Linux grep命令的用法

grep 的全称为 global search regular expression and print out the line,它是 Linux 里一款强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配到的行打印出来。

grep 工具还有个“哥哥”和“弟弟”,分别是 egrep 和 fgrep,它们分别用于不同的场景。
grep 命令的语法格式如下:
grep [选项] 匹配规则 文件名
grep 命令将根据匹配规则去匹配文本内容。grep 命令的常用选项见下表。

表 1 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

相关文章