linux文本处理三剑客之grep

来源:互联网 发布:linux 7 路由跟踪 编辑:程序博客网 时间:2024/06/05 00:52

功能

文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查,打印匹配到的行

命令说明

grep [OPTION]... PATTERN [FILE]..
-v:反向匹配,选择不被匹配的行
-i:匹配时忽略大小写
-o:公显示匹配到的字符串(默认显示一行)
-q:静默模式,不输出任何信息
-A #:after,显示匹配到的行及后#行
-B #:before,显示匹配到的行及前#行
-C #:context,显示匹配到的行及前后各#行
-E:使用扩展正则表达式,也可以使用egrep命令代替
-F:模式是定长字符串,可以使用fgrep命令代替
-G:使用基本正则表达式

正则表达式

基本正则表达式元字符
字符匹配

  1. .:匹配任意单个字符
  2. []:匹配指定范围内的任意单个字符
  3. [^]:匹配指定范围外的任意单个字符

[:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]

匹配次数

  1. *:匹配前面的字符任意次(0次或多次),
  2. \?:匹配前面的字符0次或1次
  3. \+:匹配前面的字符至少1次
  4. \{m\}:匹配前面的字符m次
  5. \{m,n\}:匹配前面的字符至少m次,至多n次

\{0,n\}:匹配前面的字符至多n次

\{m,\}:匹配前面的字符至少m次

位置锚定

  1. ^:行首
  2. $:行尾
  3. ^PATTERN$:用于匹配整行
  4. ^$:匹配空行
  5. \< 或 \b:词首,用于单词模式的左侧
  6. \> 或 \b:词尾,用于单词模式的右侧
  7. \<PATTERN\>:用于匹配整个单词
分组

  1. \(\):将()内的字符作为一个整体进行匹配,例:\(xy\)* 匹配任意个xy

扩展正则表达式

字符匹配
  1. .
  2. []
  3. [^]

次数匹配

  1. *
  2. +
  3. {m}
  4. {m,n}

锚定

  1. ^
  2. $
  3. \<,\b
  4. \>,\b
分组

()

或者

|

原创粉丝点击