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" 
posted @ 2017-09-25 11:21  N!CE波  阅读(654)  评论(0编辑  收藏  举报