grep 命令详解
grep [选项] ‘模式’ 文件名
grep [参数] [选项] [操作对象]
grep ‘error’ -c 5 --color info.log
[模式]:是要搜索的字符串或正则表达式。
[选项]:是可选的,用于定制grep的行为。
[操作对象]:是要搜索的文件名或目录名。
常用选项
-i:忽略大小写。
-v:反向匹配,选择不匹配的行。
-r 或 -R:递归搜索,不仅在当前目录的文件中搜索,还在子目录的文件中搜索。
-l:只输出包含匹配行的文件名。
-n:显示匹配行及其行号。
-c:只输出匹配的行数。
-o:只输出匹配的部分。
-A num:显示匹配行之后的num行。
-B num:显示匹配行之前的num行。
-C num 或 --context=num:显示匹配行前后各num行。
-E 使用扩展正则,等价于egrep。
-f 文件:从文件中获取模式。
–color 或 --colour:高亮显示匹配部分。
普通正则表达式
^ :以某字符开头
$ :以某字符结尾
. :匹配除换行符之外的任意单个字符
* :匹配前导字符的零次或者多次
[] :某组字符串的任意一个字符
[^] :取反
[a-z] : 匹配小写字母
[A-Z] :匹配大写字母
[a-z[A-Z]: 匹配字母
[0-9] :匹配数字
\ :转义富符
() :分组
拓展正则表达式
{
} :匹配的次数
{
n} :匹配n次
{
n,} :至少匹配n次
{
n,m} :匹配n到m次
{
,m} :最多匹配m次
+ :匹配至少一个或多次前导字符
? :匹配一个或者零个前导字符
| :或
正则与grep实战
- 在info.log文件中,匹配含有’error’的行
grep 'error' info.log
- 统计在info.log文件中含有’error’的行数
grep 'error' info.log | wc -l