Linux grep命令基本使用方法

作者:IT技术圈子 阅读:33    日期:2025年07月27日

`grep` 是 Linux 和 Unix 系统中一个非常强大的命令行工具,用于搜索文件中的文本字符串。

1. 在文件中搜索字符串

grep "search_string" filename

例如,在文件 `example.txt` 中搜索字符串 "hello":

grep "hello" example.txt

2. 在多个文件中搜索字符串

grep "search_string" file1 file2 file3

或者使用通配符:

grep "search_string" *.txt

3. 递归搜索目录中的文件

grep -r "search_string" directory_name

例如,在目录 `mydir` 及其子目录中搜索字符串 "hello":

grep -r "hello" mydir

4. 显示匹配行的行号

grep -n "search_string" filename

5. 忽略大小写

grep -i "search_string" filename

6. 只显示匹配的文件名

grep -l "search_string" *.txt

7. 显示不匹配的行

grep -v "search_string" filename

8. 统计匹配的行数

grep -c "search_string" filename

1. 使用正则表达式

`grep` 支持基本正则表达式(BRE)和扩展正则表达式(ERE)。使用 `-E` 选项启用 ERE:

grep -E "pattern" filename

例如,搜索以 "foo" 开头或以 "bar" 结尾的行:

grep -E "^foo|bar$" filename

2. 显示匹配行的上下文

显示匹配行及其前后各 n 行

grep -C n "search_string" filename

显示匹配行及其前面的 n 行

grep -B n "search_string" filename

显示匹配行及其后面的 n 行

grep -A n "search_string" filename

3. 固定字符串搜索

使用 `-F` 选项将模式视为固定字符串,而不是正则表达式。这在搜索包含特殊字符的字符串时很有用:

grep -F "fixed_string" filename

4. 从标准输入中读取数据

如果不指定文件名,`grep` 会从标准输入读取数据。例如,通过管道传递数据:

cat filename | grep "search_string"

或者更简洁地使用:

grep "search_string" < filename

5. 使用颜色高亮显示匹配

在大多数现代 Linux 发行版中,`grep --color` 会自动启用颜色高亮显示匹配项。你可以通过别名或环境变量设置默认启用:

alias grep='grep --color=auto'

或者将以下内容添加到 `~/.bashrc` 文件中:

export GREP_OPTIONS='--color=auto'

假设你有一个文件 `data.txt`,内容如下:

apple banana cherry date elderberry fig grape

搜索包含字母 "a" 的行

grep "a" data.txt

输出:

apple banana date

搜索以 "b" 开头的行,忽略大小写

grep -i "^b" data.txt

输出:

banana

递归搜索当前目录及其子目录中的 "fig"

grep -r "fig" .

掌握这些基本的 `grep` 命令用法,可以大大提高你在 Linux 系统中的文本搜索效率。

  END