(2)三剑客之grep

1)grep和egrep定义
grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行
egrep:扩展的egrep,支持更多的正则表达式元字符
2)命令格式
语法:grep [选项] pattern filename1 filename2 ....
#grep "root" /etc/passwd
    找到:grep返回的退出状态为0
    没找到:grep返回的退出状态为1
    找不到指定文件:grep返回的退出状态为2
grep程序的输入可以来自标准输入或管道:ll /etc/ | grep "^d"
3)grep使用的元字符
grep: 使用基本的元字符 ^ $ . * [] [^] [-] () m{x}    < >  
    注:grep也可以使用扩展集中的元字符,仅需要对这些元字符前置一个反斜线
egrep :使用扩展的元字符 + ? () | x{m}
    
w  所有字母与数字,[0-9A-Za-z]
W  所有字符与数字以外的字符  [^0-9A-Za-z]
    词边界    "root"    "<root>"
4)grep选项
    -i        忽略大小写
    -l        只列出匹配行所在的文件名    grep -l "root" /etc/passwd /etc/shadow
    -n        在每一行前面加上它文件中的相对行号        grep -l "root" /etc/* 2>/dev/null   结合vim /etc/passwd +50 神器
    -c        显示成功匹配的行数        grep -c "root" /etc/passwd
    -s         禁止显示文件不存在或文件不可读的错误信息    grep -s  "root" /etc/fdasfasdfadsfa
    -q        静默
    -v        反向查找,只显示不匹配的行
    -R或-r    递归针对目录    grep -r "root" /etc/
    --color    颜色
    -o        只显示匹配的内容
    -B        除了显示匹配的一行之外,并显示该行之前的num行    grep -B 2 "root" /etc/passwd  
    -A        除了显示匹配的一行之外,并显示该行之后的num行
    -C        除了显示匹配的一行之外,并显示该行之前后各num行
5)常见例子
匹配ip地址:egrep "([0-9]+.){3}([0-9]+)" /etc/sysconfig/network-scripts/ifcfg-ens33
查看帮助斜线转义:useradd --help | grep "-g"

原文地址:https://www.cnblogs.com/lovelinux199075/p/8945366.html