grep 使用随笔----运维笔记

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来。grep主要作用是过滤出指定的行,指定的行满足什么条件,满足的条件可配合正则表达式来表示,实现强大的文本处理。

一、什么是正则表达式?

       正则表达式(Regular Expression):由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能。正则表达式只是字符串的一种描述(一种表示法),只有和支持正则表达式的工具相结合才能进行字符串处理。

1.1、正则表达式的构成:

       正则表达式由元字符文本字符两种字符构成。

1.2、主要分为两类:

1、基本正则表达式 (BRE)    
   
2、扩展正则表达式 (ERE)

1.3 特殊字符类:

     POSIX字符类:为了在不同国家的字符编码中保持一致,POSIX(The Portable Operating System Interface)增加了特殊的字符类。以[:classname]的格式给出,grep命令支持POSIX字符类

类名

意义

[:upper:] 表示大写字母[A~Z]
[:lower:] 表示小写字母[a~z]

[:digit:]

表示阿拉伯数字[0~9]

[:alnum:]

表示大小写字母和阿拉伯数字[A~Za~z0~9]

[:space:]

表示任何产生空白的字符,包括空格或Tab键等

[:alpha:]

表示大小写字母[A~Za~z]

[:cntrl:]

表示键盘的控制按键,包括Tab、Del等按键
[:graph:] 表示除了空格符(空格键与Tab键)外的其他所有按键
[:print:] 表示任何可以被打印出来的字符
[:xdigit:] 表示十六进制数字[0~9A~Fa~f]
[:blank:] 表示空格键与Tab键
[:punct:] 表示标点符号,包括:" ' ? ! ; : # $... 


二、grep命令的使用

  2.1、 grep 家族有三个成员分别是:

 grep:默认支持基本正则表达式.

 egrep:默认支持扩展正则表达式,相当于grep -E.

 fgrep:不支持使用正则表达式.

2.2、命令格式

grep [OPTIONS] PATTERN [FILE...]
grep [OPTION...] -e PATTERNS ... [FILE...]
grep [OPTION...] -f PATTERN_FILE ... [FILE...]

2.3、OPTIONS:匹配方式选择

-E   : 启用扩展正则表达式(ERE),可使用扩展元字符。
-F   : 指定的模式被解释为字符串,不支持正则表示式。主要是在简单搜索中增快搜索速度。
-G   : 启用基本正则表达式(BRE)。
-P   :启用perl的正则表达式。(PCRE)

 例:如过滤文件中有.*字符的行
    [root@localhost opt]# cat file
    Paget 6 Status: 200
    Paget 6 Status: 200.*
    Page 1 Body: <!doctype html> .*.
    Page 9 Body: <!doctype html> ...
    [root@localhost opt]# grep -F '.*' file
    Paget 6 Status: 200.*
    Page 1 Body: <!doctype html> .*.

2.4、OPTIONS:匹配控制

-i:  不区分模式 PATTERN 和输入文件中的大小写。

-v:  反向选择ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值