shell脚本_ grep和egrep命令

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 shell脚本_ grep和egrep命令,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

grep 全称(Global search REgular expression and Print out the line)
作用:文本搜索工具,根据用户指定的文本模式(正则表达元字符以及正常字符组合而成)对目标文件进行逐行搜索,显示能匹配到的行。
模式:由正则表达式的元字符及文本字符所编写的过滤条件。
编写测试文件test.txt内容如下:
[root@localhost shell_test]# cat test.txt
hello world
1a2f3 yui
456 haha
nihao
thinks
shell脚本_ grep和egrep命令

1. grep和文本字符编写的过滤条件
#搜索test.txt文件中含有1a字符的行,并打印输出此行全部内容
[root@localhost shell_test]# grep “1a” ./test.txt
1a2f3 yui
shell脚本_ grep和egrep命令
[root@localhost shell_test]# cat test.txt | grep “1a”
1a2f3 yui
shell脚本_ grep和egrep命令
#只想展示匹配到的内容可以在grep 后加-o,不展示 全行内容
[root@localhost shell_test]# cat test.txt | grep -o “1a”
1a
shell脚本_ grep和egrep命令
2.grep和正则表达式编写的过滤条件
root@localhost shell_test]# cat test.txt | grep “[0-9]”
1a2f3 yui
456 haha
shell脚本_ grep和egrep命令
#是不是很奇怪,下面的命令,把匹配到的每个字符单独一行展示出来
#因为我们使用了-o模式 不在以行展示匹配到的内容,又因为正则表达式[0-9]表示 匹配0到9内的任意字符
#一旦匹配到一个字符就打印它,并换行继续匹配打印
[root@localhost shell_test]# cat test.txt | grep -o “[0-9]”
1
2
3
4
5
6
shell脚本_ grep和egrep命令
#下面使用egrep命令来实现,打印到一行中
#这里先来说明下grep和egrep的区别,grep在不加 -E的情况下,
#不支持扩展正则表达式,仅支持基本正则表达式,
#而egrep支持扩展表达式。e表示的就是extend,扩展的意思。
像{m,n},+等是扩展的表达式。
这里的grep -E 和 egrep 命令是等价的。因为正则表达式中含有扩展的表达式+
#这里的[0-9]+表示 会把同一行内匹配到连续出现的1到多个字符打印到一行内。
[root@localhost shell_test]# cat test.txt | grep -E -o “[0-9]+”
1
2
3
456
shell脚本_ grep和egrep命令

[root@localhost shell_test]# cat test.txt | egrep -o “[0-9]+”
1
2
3
456
shell脚本_ grep和egrep命令

也等价于下面的命令
[root@localhost shell_test]# cat test.txt | grep -E -o “[0-9]{1,}”
1
2
3
456
shell脚本_ grep和egrep命令
[root@localhost shell_test]# cat test.txt | egrep -o “[0-9]{1,}”
1
2
3
456
shell脚本_ grep和egrep命令

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142660.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!