linux中怎么用grep查找文档(Linux命令之grep)
一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
命令格式
grep [options] [pattern] file|directory
1. 命令选项
-l 列出包含指定模式的文件的文件名
-i 忽略大小写
-w 完全匹配关键词
-n 查找指定模式并显示匹配行的行号
-v 输出不包含指定模式的行
-o 仅显示匹配的字符串
-r 递归地查找特定模式
-e 查找多个模式
-c 计算模式匹配到的数量
-B 输出匹配指定模式前N行
-A 输出匹配指定模式后N行
-C 输出匹配指定模式前后N行
-E 扩展正则表达式
-l 打印匹配的文件名
-L 打印不匹配的文件名
2.常见正则
^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。
$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。
x{m} 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。
x{m,} 重复字符x,至少m次,如:/0\{5,\}/匹配至少有5个0的行。
x{m,n} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行。
^$ 匹配空行
abc$ 匹配以abc结尾的行
[] 匹配一个指定范围内的字符,如[0-9a-z]
[^] 匹配一个不在指定范围内的字符
\<[0-9]{2}\> 匹配独立2位数
使用示例1. 以#开头的行及空行不显示
grep -v "^#\|^$" /etc/rsyslog.conf
2. 清除本机除了当前登陆用户以外的所有用户
kill $(who -u|grep -v `whoami`|awk '{print $6}'|sort -u)
3. 统计etc及其子目录下所有文件数量
ls -lR /etc/ | grep "^-" | wc -l
4. 打印本机eth0网卡ipv4地址
ifconfig eth0|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | awk '{print $2}'
5. 打印本机eth0网卡mac地址
ifconfig eth0|egrep '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}' | awk '{print $2}'
ifconfig eth0|egrep '[0-9a-fA-F]{4}(\.[0-9a-fA-F]{4}){2}' | awk '{print $2}'
6. 多个模式关键词匹配
grep -Ew "Run|Quit" rj.log
7. 匹配包含三位数字的行
grep -E "\<[0-9]{3}\>" a.c
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com