grep

 
grep:文本搜索工具
根据用户给出的"模式",搜索出自己需要的信息
 
[root@bjgwzd.com hadoop]# grep "centos" /etc/passwd
grep  选项   "模式"  文件名
      —color 关键字标记颜色
      -v    取反操作
 
基本正则表达式:
元字符:
    .   任意单个字符
    []  集合中的单个字符
        [[:digit:]]  [0-9]
                     [a-z]
                     [A-Z]
                     [a-zA-Z]
                     [0-9a-zA-Z]
        [[:space:]]
        [[:punct:]]
    [^] 集合外的任意单个字符
 
匹配次数:
    * 匹配其前面字符任意次:0,1,。。。
        grep "[a-z]*y"
        xy  xxy   xxxy  y
    ? 匹配其前面字符0,1
            grep "x?y"
        xy  xxy   xxxy  y
    +  匹配其前面字符至少1次
    {m}  匹配其前面字符至少m次
    {m,n}   匹配其前面字符至少m次,最多出现n次
.*  匹配任意长度任意字符
    
位置锚定:
^   行首锚定
$   行尾锚定
^$  空白行  
<  词首锚定
>  词尾锚定
<单词锚定>
()
 
 
1、显示/proc/meminfo文件中以大写或小写S开头的行;
grep --color "^[Ss]"  /proc/meminfo
2、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
grep  -v --color  "/sbin/nologin$"  /etc/passwd
3、显示/etc/passwd文件中其默认shell为/bin/bash的用户;   
grep  --color  "/bin/bash$"  /etc/passwd
4、找出/etc/passwd文件中的一位数或两位数;
grep --color "<([0-9]|[1-9][0-9])>" /etc/passwd
5、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
grep --color "^[[:space:]]+" /boot/grub/grub.conf
6、显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
grep --color "^#[[:space:]]+[^[:space:]]+"  /etc/rc.d/rc.sysinit
7、找出netstat -tan命令执行结果中以'LISTEN'(后可有空白字符)结尾的行;
8、添加用户bash, testbash, basher, nologin(SHELL为/sbin/nologin),而找出当前系统上其用户名和默认shell相同的用户;
 
 
e.g.:tomcat查看日志
tail -f logs/catalina.out  | grep --color=auto -C 10 -w "login" 
原文地址:https://www.cnblogs.com/756623607-zhang/p/7591035.html