Linux shell之grep


1.什么是grep
    Linux   grep全称为全局正则表达式打印(global regular expression print),用于查找
输入文本中匹配正则表达式的所有行,并写入到标准输出(显示器)。可以说,grep是一个程序家族,它拥有三个实用程序。
(1)grep
标准grep,只支持部分正则表达式。
(2)egrep
扩展的grep,支持大部分正则表达式。
(3)fgrep
快速grep,只支持字符串模式,不支持正则表达式。

2.grep工作原理
       为了正确使用grep查找文本,必须首先理解其工作原理,grep对标准输入(文件或
键盘)的每行文本,进行如下操作:
(1)将该行文本读入相应的缓冲区,有时候称为模式空间。
(2)对缓冲区的文本进行正则表达式的比对。
(3)如果匹配,则该行信息从缓冲区处置到标准输出(显示器)。
grep程序将对剩余的文本行重复该3步操作。

3.查找操作
3.1 grep格式
grep 选项正则表达式文件
grep选项:
-c 只打印匹配记数
-i 忽略大小写
-n 打印行编号
-v 打印不匹配行
-x 只打印匹配行
-f 指定存储正则表达式的文件
-s 执行查找,但禁止输出
3.2 正则表达式
     grep的不同实用程序,支持的正则表达式模式不同,如下表所示:
-------------------------------------------------------------------------------------------------
| 实用程序 |                  原     子                           运   算   符                          |
-------------------------------------------------------------------------------------------------
 grep       | 字符、点、类、锚、向后引用     序列、重复(除?)、保存      |
-------------------------------------------------------------------------------------------------
  fgrep      | 字符                                           序列                                         |
-------------------------------------------------------------------------------------------------
  egrep      | 字符、点、类、锚(^$)            序列、重复(*?+)、替换、组 |
-------------------------------------------------------------------------------------------------

相关内容