1.1 grep 命令介绍

  • grep 命令用于查找内容,包含指定的范本样式的文件。

  • 如果发现某文件的内容符合所指定的查找内容,grep 命令会把含有查找内容的那一列显示出来。

  • 若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据

1.2 grep 常用参数

参数 作用
--color=auto 过滤内容加色(默认已使用该参数)
-v 取反
-i 不区分大小写
-n 对过滤出的内容显示行号
-w 按单词过滤
-o 只输出匹配的字符,而不是整行 (在egrep中为:把一个文件竖向显示)
-E 过滤多字符串,同egrep
-A 显示过滤的字符串和它之后多少行
-B 显示过滤的字符串和它之前多少行
-C 显示过滤的字符串和它之前之后的多少行
-l 查询多文件时只输出包含匹配字符的文件名

1.3 grep 使用实例

直接使用grep命令

# grep "bin" /etc/passwd

image20220516171855878.png

1.3.0 --color=auto 过滤内容加色

# grep --color=auto "root" /etc/passwd

image20220516171155602.png

1.3.1 -v 取反

# grep -v "a" a.txt

image20220516171420654.png

1.3.2 -i 不区分大小写

# grep -i "a" a.txt

image20220516171522375.png

1.3.3 -n 对过滤出的内容显示行号

# grep -n "a" a.txt

image20220516171640342.png

1.3.4 -w 按单词过滤

# grep -w "bin" /etc/passwd

image20220516171813022.png

1.3.5 -o 只输出匹配的字符

# grep -o "sbin" /etc/passwd

image20220516171950567.png

1.3.6 -E 过滤多字符串,同egrep

# grep -E "bin|root" /etc/passwd
# egrep "bin|root" /etc/passwd

image20220516172250814.png

1.3.7 -A 显示过滤的字符串和它之后多少行

# grep -A2 "nobody" /etc/passwd

image20220516172510095.png

1.3.8 -B 显示过滤的字符串和它之前多少行

# grep -B2 "nobody" /etc/passwd

image20220516172551175.png

1.3.9 -C 显示过滤的字符串和它之前之后的多少行

# grep -C2 "nobody" /etc/passwd

image20220516172625750.png

1.3.10 -l 查询多文件时只输出包含匹配字符的文件名

# grep -l "System" /root/*

image20220516174215215.png