linux三剑客之grep
grep命令是一个强大的文本搜索工具,全称是Global Regular Expression Print,它能使用正则表达式搜索文本,并把匹配的行打印出来,使用权限是所有用户
1、使用格式
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
grep 关键词 文本文件
2、比较常用的参数
-c:仅显示找到的次数
-i:忽略大小写
-n:显示行号
-o:只显示被模式匹配到的字符串
-v:反向匹配,仅列出没有"关键词"的行
-E:使用扩展的正则表达式,可以添加多个搜索项,等价于egrep命令
-A n:显示匹配到的行及其后n行
-B n:显示匹配到的行及其前n行
-C n:显示匹配到的行及其前n行和后n行
--color[=auto]:查到的关键字高亮显示
3、简单实例
以/etc/passwd文件作为查找文件,执行如下操作:
1)找到文件中带有root的行:
[root@acer ~]# grep "root" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
2)找到文件没有nologin的行:
[root@acer ~]# grep -v "nologin" /etc/passwd root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt ning:x:500:500::/home/ning:/bin/bash
3)找到文件中带有shutdown的行及其后5行:
[root@acer ~]# grep "shutdown" -A 5 /etc/passwd shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin
4、grep高级用法
想要实现高级用法,须配合正则表达式及管道
1)找到文件中以root开头的行(锚定行首)
[root@acer ~]# grep "^root" /etc/passwd root:x:0:0:root:/root:/bin/bash
3)显示文件中以a或b或c开头的行(正则表达式、锚定行首)
[root@acer ~]# grep "^[abc]" /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin
3)取出用户默认shell为bash的用户名及其UID(锚定行尾、管道、cut命令)
[root@acer ~]# grep "bash$" /etc/passwd | cut -d : -f1,3 root:0 ning:500
总之,grep命令是一个很强大的文本搜索命令,它可以配合管道、重定向、正则表达式等实现强大的文本搜索功能,是linux中重要的命令之一。
本文出自 “纸盒人” 博客,请务必保留此出处http://zhiheren.blog.51cto.com/12120978/1860656
原文地址:http://zhiheren.blog.51cto.com/12120978/1860656