Linux基本命令练习(9)---grep

grep

grep是Linux命令行下常用于查找、过滤文本文件内容的命令。
语法:
grep [OPTIONS] PATTERN [FILE...]

find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组等。
grep命令是根据文件的内容进行查找,会对文件的每一行按照给定的模式(pattern)进行匹配查找。

options

  • -a 在二进制文件中,以文本文件的方式搜索数据
  • -v 显示不包含匹配文本的所有行
  • -i:不区分大小写
  • -o :只输出文件中匹配到的部分
  • -E:将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式
  • -c:计算找到匹配文本的次数
  • -n:找到匹配文本后,顺便输出匹配文本所在行号
  • –color=auto:给匹配到的字符串加颜色,注意不是整行。

实例

[root@muban data]# cat iantest1.txt 
1Ian aaa
2Ian aaa
3Ian aaa
#把包含字符串"1"的一整行全打印出来
[root@muban data]# grep "1" iantest1.txt 
1Ian aaa
#只打印包含的内容字符串"1"
[root@muban data]# grep -o "1" iantest1.txt 
1
[root@muban data]# grep -v "1" iantest1.txt 
2Ian aaa
3Ian aaa

-E 可以同时过滤多个匹配文本

[root@muban data]# grep -E "3306|1521" /etc/services

[root@muban data]# egrep  "3306|1521" /etc/services 
#这两条命令结果相同 grep-E相当于egrep
#在文件中找到包含3306或者包含1521的行

Linux基本命令练习(9)---grep_第1张图片

-n 与–color=auto

[root@ianLinux data]# alias grep='grep --color=auto'
[root@ianLinux data]# grep -n "3306" /etc/services

这里写图片描述
416,417都是行号

grep "string" -B 10 greptest.txt

  • -B:除了显示匹配的一行之外,并显示改行之前的num行
  • -A:除了匹配的一行之外,并显示该行之后的num行
  • -C:除了显示匹配的一行之外,并显示该行前面各num行

Linux基本命令练习(9)---grep_第2张图片

Linux基本命令练习(9)---grep_第3张图片

Linux基本命令练习(9)---grep_第4张图片

你可能感兴趣的:(Linux基础)