grep是文本处理三剑客之一,其余两个分别是sed、awk,grep可以打印出文件中匹配到的内容,最大的特点是可以支持正则表达式。
一:grep文本处理工具
grep命令格式介绍:
grep [options]...PATTERN [FILE]
主要参数: grep --help可查看
-A n:显示匹配到的行以及后面的第n行。(after)
-B n:显示匹配到的行以及前面的第n行。(before)
-C n:显示匹配到的行以及前后的第n行。(context)
-v:显示不包含匹配文本的所有行(排除)。
-c:统计匹配行数。
-o:仅显匹配到的字符串。
-i:不区分大小写。
-E:开启扩展模式
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
--color=auto :可以将找到的关键词部分加上颜色的显示。
示例:
1.使用grep命令搜索匹配到的内容,并把改行打印出来
2.grep排除过滤用法
3.grep 显示行号
4.grep显示匹配到的字符
5.grep -A、-B、-C 的用法
二、正则表达式
正则表达式通常被用来检索、替代那些符合某个模式(规则)的文本,在各种编程语言中都支持正则表达式,因此,正则表达式的应用非常广泛,正则表达式使用一定特定符号用来表示特定功能,这些符号称为元字符,正则表达式有两种:标准正则表达式和扩展正则表达式,正则表达式的元字符可以分成四类:字符匹配、次数匹配、位置锚定、分组和逻辑组合。
2.1字符匹配:
2.2次数匹配
2.3位置锚定
2.4分组和逻辑处理
例子:
正则表达式匹配单个字符:
过滤指定的字符:
取反字符:
三、综合练习:
3.1 显示/pro/meminfo文件中以大小s开头的行
3.2 显示/etc/passwd文件中不以/bin/bash结尾的行
3.3 显示用户rpc默认的shell程序
3.4 找出/etc/passwd中的两位数或者三位数
3.5 显示Centos7上所有UID小于1000以内的用户名和UID
3.6 利用df和grep,取出磁盘各分区利用率,并从大到小排序
总结:
在学习正则表达式的时候,要先熟记正则表达式中的四类元字符标点,然后利用符号标点进行练习,才能掌握正则表达式的日常用法