shell编程之内容查找grep

 |   

GREP (Globally search a Regular Expression and Print,以正则表达式进行全局查找以及打印)是一种强大的文本搜索工具,它对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。

简介

Unix 的 grep 家族包括 grep、egrep 和 fgrep。egrep 和 fgrep 的命令只跟 grep 有很小不同。egrep 是 grep 的扩展,支持更多的 re 元字符, fgrep 就是 fixed grep 或 fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示其自身的字面意义,不再特殊。Linux 使用 GNU 版本的 grep。它功能更强,可以通过 -G、-E、-F 命令行选项来使用 egrep 和 fgrep 的功能。

使用方法

  • 基本用法

    1# 搜索原始字符串
    2grep [-cinv] '搜索字符串' filename
    3# 用正则表达式搜索字符串
    4grep -E 'pattern' filename
    
  • 参数说明

    • -c 统计查找到字符串的次数
    • -i 忽略大小写
    • -n 显示查找字符串的行号
    • -v 反向选择
    • -E pattern中可以用扩展的正则表达式

样例演示

  • 在/etc/passwd中查找root字符串,并显示所在行号

    1grep -n 'root' /etc/passwd
    

    grep-n

  • 在/etc/passwd中查找oo字符串出现的行次数

    1grep -c 'oo' /etc/passwd
    

    grep-c

  • 在/etc/passwd中查找oo字符串未出现的行

    1grep -vn 'oo' /etc/passwd
    

    grep-v

  • 在/etc/passwd中查找以b开头的字符串

    1grep -E '^[b]' /etc/passwd
    

    grep-E

参考文献

  1. 维基百科grep
  2. grep源码
技术茶话会
< 前一篇 后一篇 >