学习记录(十)

文本处理三剑客

  grep:文本过滤工具(模式:PATTERN )

  sed:流编辑器,文本编辑工具

  awk:在linux上实现为gawk,文本报告生成器(格式化文本)

正则表达式:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配

  基本正则表达式:BRE

  扩展正则表达式:ERE

  字符匹配元字符

    .:匹配任意字符

    []:匹配指定范围内的单个字符

    [^]:匹配指定范围外的单个字符

  匹配次数元字符

    *:匹配前面字符任意次,包含0次

    .*:匹配任意长度任意字符

    \?:匹配前面字符0或1次,即前面字符可有可无

    \+:匹配前面字符1次或多次,即前面字符至少一次

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

    \{m,n\}:匹配前面字符至少m次,至多出现n次

      \{0,n\}:至多n次

      \{m,\}:至少m次

  位置锚定元字符

    ^:行首锚定,用于模式最左侧

    $:行尾牟定,用于模式最右侧

    ^PATTERN$:用于匹配整行

    \<或\b:词首锚定,用于单词左侧,单词指的是连续的字符串

    \>或\b:词尾锚定,用于单词右侧

    \<PATTERN>\:用于匹配任意单词

  分组及引用

    \(\):将一个或多个字符捆绑在一起,当做一个整体对待

    Note:括号内的模式匹配到的内容会被正则表达式引擎保存在内部的变量中

      \1:左侧起第一个括号与对应由左括号之间的字符

      \2:左侧起第二个括号与对应由左括号之间的字符

      例如:He love his lover

           He likes his lover             用   \(l..e\).*\1   来匹配like...........like   

           She likes her liker

           She  loves her liker

grep 

  作用:搜索工具,根据用户指定的“模式(过滤条件)“对目标文件逐行进行匹配检查,并打印匹配到的行

  模式:由正则表达式的元字符及文本字符所编写出的过滤条件

  (1)grep  PATTERN  FILE

  (2)grep  -f  FILE1   FILE2  从FILE1中读取条件,在FILE2中搜索

  -i:忽略大小写

  -v:反向匹配

  -E:支持扩展的正则表达式

  -q:不管匹配匹配不到都不输出,在shell脚本中多用其$?来进行判断

  -A   #:将匹配行后#行一并显示

  -B   #:将匹配行前#行一并显示

  -C    #:将匹配行前后#行一并显示

猜你喜欢

转载自www.cnblogs.com/baling/p/10487137.html