1、    grep程序

  linux下文本处理三剑客—grep sed awk

  grep -- 文本 行过滤工具

  sed -- 文本 行编辑器(流编辑器)

  awk – 报告生成器(做文本输出格式化)

 

grep:

  包括三个命令:grep egrep fgrep。它们是用来进行行模式(pattern)匹配的

  egrep=grep -E  使用扩展的正则表达式进行匹配

  fgrep=fast grep  只使用文件通配符进行匹配

  *grep默认使用正则表达式进行文本匹配*

grep的用法:

  grep [option] pattern [filename]

grep的常见选项:

  -E 支持使用扩展的正则表达式(ERE)(regexp)

  -P 使用perl语言的正则表达式引擎(搜索机制)进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的regexp引擎也不相同)

  -i 忽略大小写

  -v 进行反选

  -o 仅仅输出匹配的内容(默认输出的是匹配到的行)

  --color=auto 语法着色

   -n 显示行号

   -w 匹配固定的单词

 

pattern-正则表达式

  作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行(如果使用特殊字符,本身的含义就需要\来转义)

   回顾:文件通配符

  * ?[] [^ ]

  1. 字符匹配

    . 任意一个字符

    [] 范围内的任意一个字符

    [^] 范围外任意一个字符

    字符类: [:digit:]。。。。。

  2. 次数匹配

    *  匹配前一个字符0次到n次

    \? 匹配前一个字符0次到1次

    \+ 匹配前一个字符1次到n次

    \{m\} 匹配前面的字符m次

    \{m,n\} 匹配前面的字符m到n次

    \{0,n\} 匹配前面的字符0到n次

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

  3. 位置锚定

    ^ 锚定行首

    $ 锚定行尾

    \b 锚定词首和锚定词尾

    \> 锚定词尾

    \< 锚定词首

  4. 分组

    \(\) eg:\(abc\)* 此时我们将abc看做整体

    分组特性:默认情况下,linux系统会为分组指定变量,而变量的表示形式为\1\2\3…

 

posted on 2019-08-14 11:23  TheNerverLemon  阅读(66)  评论(0编辑  收藏  举报