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的行
-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行