Linux文本处理工具之grep

时间:2019-05-16 00:03:42   收藏:0   阅读:175
文本处理三剑客之GREP

文本过滤工具:glob 用于实现bash中的文件名通配

作用:文本搜索,根据用户指定的内容,对目标文件进行逐行匹配检查,打印匹配到的行

  • 内容(模式):由正则表达式字符和文本符所编写的过滤条件
  • 正则表达式:由一类特殊字符所编写的模式,有些字符不表示字符本身的含义,而表示控制或通配
  • 元字符:表示特殊含义的字符

    grep的使用方法:

  • 格式:grep [选项] 模式 目录或文件
  • --color=auth:对匹配到的内容加颜色显示
  • -m #:匹配#次后停止
  • -n:显示匹配的行行数
  • -c:统计匹配到的行的行号
  • -v:显示不能匹配到的行
  • -i:匹配时忽略字符大小写
  • -o:仅显示匹配到的字符
  • -q:静默模式
  • -A#:显示匹配到的行和后#行
  • -B#:显示匹配到的行和前#行
  • -C#:显示匹配到的行和前后各#行
  • -w:匹配整个单词
  • -E:使用扩展正则表达式
  • -F:使用fgrep
  • -f file:根据模式文件中的内容去匹配

基本正则表达式的元字符:使用引号引起来

扩展正则表达式:egrep

选项与基本正则表达式相同

egrp的元字符:

  • 字符匹配:同grep
  • 次数匹配:同grep,但是不需要转义
  • 位置锚定:同grep
  • 分组:小括号不需要转义
  • 后向引用
  • 或者:| 不需要转义

fgrep:不支持正则表达式,仅仅找给定的字符串

练习:

  1. 显示/proc/meminfo文件中以大小写s开头的行

    grep -i ‘^s.‘ /proc/meminfo
    grep ‘[Ss].
    ‘ /proc/meminfo

  2. 显示/etc/passwd文件中不以bash结尾的行

    grep -v ‘.*bash$‘ /etc/passwd

  3. 显示CentOS7中的/etc/grub2.cfg文件中,至少以一个空白字符开头,且后面有非空白字符的行

    grep -E "^[[:space:]]+[^[:space:]]" /etc/grub2.cfg

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!