Linux-正则相关grep、egrep

grep

grep:全局用正则表达式搜索,并且打印符合条件的行

grep [option] .... pattern [file]

参数

  • --color=auto 将匹配到的文本添加颜色显示

  • -v 取反,显示没有匹配到

  • -i 忽略大小写

  • -n 显示匹配到的行的行号

  • -c 只显示匹配到的行的个数

  • -o 只显示匹配到的字符

  • -q 静默模式,不输出东西

  • -A # 输出后#行

  • -B # 输出前#行

  • -C # 前后各输出#行

  • -e 表示或者

  • -E 扩展正则表达式

  • -r 递归查找

 grep -q "qwertyuip;qwertyuo" passwd 
 echo $? # 表示上条命令是否正确
 grep -q "root" passwd 
 echo $?

 grep -e "root" -e "mail" passwd 
 grep -r root /etc/ 

正则表达式

  • 字符匹配

    • . 匹配任意单个字符

    • [abc] 匹配执行范围内的任意单个字符 [0-9]

    • [^abc] 取反

    • [:alnum:] 数字大小写 [a-zA-Z0-9]

    • [:alpha:] 大小写字母 [a-zA-z]

    • [:lower:] 小写字母 [a-z]

    • [:upper:] 大写字母 [A-Z]

    • [:digit:] 数字 [0-9]

    • [:punct:] 标点符号

  • 匹配次数

    • * 0次或者多次,是贪婪匹配

    • \?0次或者一次

    • \+ 最少一次

    • \{n\} 匹配n次

    • \{m,n\} 最少m次,最多n次

    • \{,n\} 最多n次

    • \{m,\} 最少m次

  • 位置锚定

    • ^ 行首锚定

    • $ 结尾

    • ^$ 空行

  • 向后引用

    • \1:表示前面第一个括号内匹配之后产生的字符,在\1的位置要在出现一次
    • \2:

egrep

egrep =grep -E

支持扩展正则表达式,与标准增长表达式的区别就是不需要转义

Linux-正则相关grep、egrep

上一篇:Linux-虚拟环境


下一篇:面试