grep命令学习
grep(Globally search a Regular Expression and Print), 全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。
grep选项:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
grep常用参数
--color:将关键字部分使用颜色显示
[root@node1 ~]# alias cgrep='grep--color=auto'
-v:反向匹配,显示不能被模式匹配到的行
-o:仅匹配被模式匹配到的字串,非整行
-i:不区分大小写
-E:支持扩展
-n:显示行号
-A:后面可加数字,为after的意思,除了列出该行外,后续的 n 行也列出來;
-B:后面可加数字,为bfter的意思,除了列出该行外,后续的 n 行也列出來;
-C:前后各显示一行
grep正则表达式
. (小数点):任意单个字符
[]:指定范围内的任意单个字符
所有数字: [0-9],[[:digit:]]
所有小写字母: [a-z],[[:lower:]]
所有大写字母: [A-Z],[[:upper:]]
所有字母: [[:alpha:]]
所有标点符号: [[:punct:]]
空格: [[:space:]]
[^]:指定范围外的任意单个字符
次数匹配:用来指定匹配前面字符的次数
*(星号):表示重复前一个字符任意次
.*(点星号):表示匹配任意长度的任意字符
\?: 表示前一个字符出现0次或者1次
\{m\}: 表示匹配前一个字符m次
\{m,n\}: 表示匹配前一个字符至少m次,最多n次
\{m,\}: 表示匹配前一个字符至少m次
\{0,n\}: 表示匹配最多n次
位置锚定:指定字符出现的位置
^:锚定行首
$:锚定行位
\<:锚定词首
\>:锚定词尾
分组:
\(ab\)*xy
引用:
\1:后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式匹配到的内容,意思是说前面出现一次,在\1这也要出现一次
grep练习
1、 显示/proc/meminfo文件中的以大小写s的开头的行
2、 取出默认shell为非bash的用户
|
1
|
[root@node1 ~]# grep -v "bash$" /etc/passwd |cut -d: -f1 |
3、 取出默认shell为bash的且其ID号最大的用户
|
1
|
[root@node1 ~]# grep "bash$" /etc/passwd |cut -d: -f1|sort -n -t: -k3|tail -1 |
4、 显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行
|
1
|
[root@node1 ~]# grep "^#[[:space:]]\{1,\}[^[:space:]]\{1,\}" /etc/rc.d/rc.sysinit |
5、 显示/boot/grub/grub.conf中至少有一个空白字符的行
|
1
|
[root@node1 ~]# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf |
6、 查出/etc/passwd中一位数或两位数
|
1
|
[root@node1 ~]# grep --color=auto "\<[0-9]\{1,2\}\>" /etc/passwd |
7、 找出ifconfig命令结果中的1到255之间的整数
|
1
|
[root@node1 ~]# ifconfig |grep -E --color=auto "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>" |
8、 添加用户bash和testbash,而后找出当前系统上于其他用户名和默认shell相同的用户
|
1
|
[root@node1 ~]# grep “^\([[:alnum:]]\{1,\}\)\>.*\1$” /etc/passwd |
9、 找出netstat-tan命令执行的结果中以“LISTEN”或“ESTABLISHEN”结尾的行
|
1
|
netstat -tan | grep -E "(LISTEN|ESTABLISHED)[[:space:]]*" |
grep命令学习的更多相关文章
- Linux中grep命令学习
1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小 ...
- Linux输入输出重定向和文件查找值grep命令
Linux输入输出重定向和文件查找值grep命令 一.文件描述符Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2.Linux系统实际上有12个文件描述 ...
- grep命令输出显示高亮字
grep命令执行后,终端上输出显示颜色可以加"--color=auto"的参数. 另外的两个办法是: 1.设置环境变量: export GREP_OPTIONS="--c ...
- Linux学习历程——Centos 7 grep命令
一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...
- Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)
1.文件搜索命令:locate [文件名] 在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少 例子:locate test.txt,就会显示文件名包含 test.txt的所 ...
- linux命令学习(1):grep 命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- Linux命令学习-grep
1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局 ...
- linux shell编程学习笔记(二) --- grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- shell脚本学习指南-grep文本搜索命令-学习(3)
1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...
随机推荐
- Leetcode 给一个数a和一个向量b,找出该向量b中的2个数相加等于a,并输出这两个数在向量中的位置
看C++primer Plus看的无聊,第一次做Leetcode的练习,本来想做二维向量的,结果始终通不过,查了原因,必须用一维的... 一维的答案: class Solution { public ...
- git学习心得总结
最近学习git,应为git可以不需要服务器而在任意的Linux机器上管理代码,相对svn和cvs还是有它的优势的,所以我选用了git来管理我的小项目,以后在提供svn的管理. 在使用了一段时间后想写一 ...
- Delphi编译的程序如何获取管理员权限
1.制作manifest文件 <?xml version="1.0" encoding="UTF-8" standalone="yes" ...
- Kindle使用的一些方法
最大的好处就是方便,买书便宜,到手我就买了六部书,十块钱不到,以纸书的价格一本都买不到,能够买一些一直想读一下,但又担心读不下去的书.而且买了之后完全不用担心书柜收纳不下了.另外很轻便,放在包里上下班 ...
- maven项目管理利器
一.maven介绍及环境搭建 maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. maven可以更有效的管理项目,也是一套功能强大的自动化管 ...
- Qt中sizeof
class a{ int d; // virtual void ssss(); }; qDebug() <<sizeof(a) << sizeof(int) << ...
- 解决ie6 fixed 定位以及抖动问题
像你所遇到的问题一样, IE6浏览器有太多的bug让制作网页的人头疼.这篇文章介绍的是介绍的是如何解决IE6不支持position:fixed;属性的办法.如果我们需要做某个元素始终位于浏览器的底部, ...
- 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...
- Material Design使用记录
出现过的问题记录: 1.Crash on Android 6.0 in RippleView.draw() 解决方法: This has very simple solution. Just down ...
- BZOJ 1018 线段树维护图连通性
用8个bool维护即可分别为LURU,LURD,LDRU,LDRD,LULD,RURD,Side[1],Side[2]即可. Side表示这一块有没有接到右边.Merge一下就可以了.码农题,WA了一 ...