Linux grep 命令教程

返回工具箱首页

grep是什么

 

 

 

 

 

 

grep 是一个强大的文本搜索工具,广泛应用于 Linux 和 Unix 系统中。它的全称是 Global Regular Expression Print,用于根据给定的正则表达式搜索文本,并将匹配的行打印出来。

基本用法

grep 命令的基本语法如下:

grep [选项] 模式 [文件...]
  • 模式:表示要查找的字符串或正则表达式。

  • 文件:表示要查找的文件名,可以同时查找多个文件。如果省略文件参数,则默认从标准输入中读取数据。

常用选项

  • -i:忽略大小写进行匹配。

  • -v:反向查找,只打印不匹配的行。

  • -n:显示匹配行的行号。

  • -r:递归查找子目录中的文件。

  • -l:只打印匹配的文件名。

  • -c:只打印匹配的行数。

示例

  1. 在文件 file.txt 中查找字符串 "hello",并打印匹配的行: grep hello file.txt

  2. 在文件夹 dir 中递归查找所有文件中匹配正则表达式 "pattern" 的行,并打印匹配行所在的文件名和行号: grep -r -n pattern dir/

  3. 在标准输入中查找字符串 "world",并只打印匹配的行数: echo "hello world" | grep -c world

  4. 反向查找文件名中包含 test 的文件中不包含 test 的行: grep -v test *test*

  5. 以递归的方式查找符合条件的文件。例如,查找指定目录 /etc/acpi 及其子目录下所有文件中包含字符串 "update" 的文件,并打印出该字符串所在行的内容: grep -r update /etc/acpi

正则表达式

grep 支持使用正则表达式进行复杂的文本匹配。常见的正则表达式符号包括:

  • ^:匹配行的开始。

  • $:匹配行的结束。

  • .:匹配任意单个字符。

  • *:匹配零个或多个前面的字符。

  • []:匹配指定范围内的字符。

例如,匹配以 "hello" 开头的行:

grep '^hello' file.txt

匹配以 "world" 结尾的行:

grep 'world$' file.txt

grep 是一个功能强大且灵活的工具,适用于各种文本搜索和处理任务。通过结合正则表达式和各种选项,可以实现复杂的文本匹配和过滤。