part01php
一、找出/proc/meminfo文件中,全部以大写或小写s开头的行,至少三种实现方式 html
grep '^[Ss]' /proc/meminfo grep -i '^s' /proc/meminfo grep -E '^(S|s)' /proc/meminfo
二、显示当前系统上root、centos、或者user1用户的相关信息git
grep -E "^(root\>|centos\>|user1\>)" /etc/passwd
三、找出/etc/rc.d/init.d/functions文件中某单词后面跟一个小括号的行shell
grep -E "[_[:alnum:]]+?\(\)" /etc/rc.d/init.d/functions
四、使用echo命令输出一绝对路径,使用grep取出其基名centos
echo /etc/sysconfig/network-scripts/ifcfg-eth0 | grep -Eo "(\<[^/]+?)$"
进一步:取出其路径名,相似于对其执行dirname命令的结果 bash
echo /etc/sysconfig/network-scripts/ifcfg-eth0 | grep -Eo "^/(.*)/"
五、找出ifconfig命令结果中的1-255之间的数值ide
ifconfig | grep -E "\<[1-9]\>|\<[0-9][1-9]\>|\<1[0-9][0-9]\>|\<2[0-5][0-5]\>"
六、添加用户bash,testbash,basher以及nologin(其shell为/sbin/nolgin);然后找出/etc/passwd文件用户名同shell名的行ui
grep -E "^(\<.*\>).*(\1)$" /etc/passwd grep -E "^[^:]+\>" /etc/passwd grep -Eo "^([^:]+\>).*\1$" /etc/passwd
七、获取ifconfig命令中的IP地址,使用三种方式实现spa
ifconfig | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}' ifconfig | grep -o '\b[0-9]\{1,3\}\b\.\b[0-9]\{1,3\}\b\.\b[0-9]\{1,3\}\b\.\b[0-9]\{1,3\}\b' ifconfig | grep -Po '(?<=inet)(.*)(?=net)'
part02日志
一、只在目录中全部的.php和.html文件中递归搜索字符”main()”
grep "main()" . -r --include *.{php,html}
二、在搜索结果中排除全部README文件
grep "main()" . -r --exclude "README"
三、在搜索结果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelist
四、在多级目录中对文本进行递归搜索
grep "string" . -r -n
五、搜索多个文件并查找匹配文本在哪些文件中
grep -1 "root" /etc/fstab /etc/passwd
六、搜索开头不是英文字母的行,并显示行号
grep -n '^[^a-zA-Z]' /etc/fstab
七、搜索c后面跟1,2个d,后面再跟一个3的字符串的行
grep 'UUID=cd\{1,2\}3' /etc/fstab
八、过滤空行和开始为#开始的行
grep -Ev '^#|^$' /etc/fstab
九、 找出/etc/rc.d/rc.sysinit或/etc/grub2.cfg g文件中,以致少一个空白字符开头,且后面存在非空白字符的行
grep "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg
十、列出系统全部系统用户(Centos 7)
grep "\<\([[:digit:]]\)\{2,3\}\>" /etc/passwd
十一、过滤functions文件中,以单词或者单词前面跟了一个”_“开头的行,并显示先后2行
grep -E2 "^[_[:alnum:]]+\\(\\)" /etc/rc.d/init.d/functions
part03
一、显示/etc/rc.d/rc.sysinit中以#开头,且后面跟一个或多个空白字符,然后又跟了任意非空白字符的行
grep "^#[[:space:]]\+.\+" /etc/rc.d/rc.sysinit
二、查找/proc/cpuinfo文件中关键字,并显示先后1行
grep -C 1 "GenuineIntel" /proc/cpuinfo
三、查找包含至少一个 root关键字 的文件
find . -type f -print0| xargs -0 grep -c banana| grep -v ":0$"
四、查找文本中的全部QQ邮箱
grep -E "^[1-9]{1}[0-9]{1,10}@qq.com$" mail_list.txt
五、查找default和dev两个关键字
grep -e "defaulkt" -e "dev" /etc/fstab
六、查找/etc目录下,全部包含root关键字的文件并显示文件路径及文件名
grep -lr "root" /etc/ | xargs ls -l
七、监控日志文档中产生Error的行,并只打印包含Error的行
tailf /var/www/logs/error.log | grep --line-buffered "Error"