当前位置: 首页 > news >正文

深圳网站建设 手机网站建设/今日头条极速版官网

深圳网站建设 手机网站建设,今日头条极速版官网,做电商网站要服务器吗,铜川网站设计一、 简介 grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。 grep的工作方式是这样的&am…

一、 简介

     grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。   

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。 
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
Grep命令中允许指定的串语句是一个规则表达式,这是一种允许使用某些特殊键盘字符的指定字符串的方法,这种方法中的特殊键盘字符可以用于代表其他字符也可以进一步定义模式匹配工作方式。例如:grep ".*hood" essay1。该命令将在文件essay1中搜索,显示出包含带有字符串hood的字的每一行。命令行中的点表示的是hood之前可以有任意字符,星号指的是在字符串之前点号所表示的任意字符可以有任意个(其中的双引号是可有可无的,但是当语句中包含短语或者空格时就必须加双引号)[1] 
二、用法
(1)   表达符集
1、^       锚定行的开始 ,如'^google'匹配所以以google开头的行
2、$       锚定行的结束, 如'goolge$'匹配所以以google结束的行
3、.        匹配一个非换行符('\n')字符, 如‘gr.p'匹配gr后接一个任意字符
4、*       匹配零个或多个先前字符
5、[]      匹配一个指定范围内的字符,如'[Gg]rep' 匹配Grep和grep
6、[^]   匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。
7、\<    锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
8、\>    锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
9、x\{m\}   重复字符x,m次,如:'o\{5\}'匹配包含5个o的行。
10、x\{m,\}  重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
11、x\{m,n\}  重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
12、\w  匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
13、\W  \w的反置形式,匹配一个或多个非单词字符,如点号句号等。
14、\b  单词锁定符,如: '\bgrep\b'只匹配grep。[2] 
15、\+  匹配一个或多个先前的字符。如:'[a-z]\+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
16、\?  匹配零个或一个先前的字符。如:'gr\?p'匹配gr后跟一个或没有字符,然后是p的行。
17、a\|b\|c  匹配a或b或c。如:grep|sed匹配grep或sed
18、\(\)   分组符号,如:love\(ab\le\|rs\)ov\+匹配loveable或lovers,匹配一个或多个ov。

 (2)命令选项

1、-?                    同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。
2、-a, --text             等价于匹配text,用于(Binary file (standard input) matches)报错
3、-b,--byte-offset      打印匹配行前面打印该行所在的块号码。
4、-c,--count                 只打印匹配的行数,不显示匹配的内容。
5、-f File,--file=File      从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。
6、-h,--no-filename     当搜索多个文件时,不显示匹配文件名前缀。
7、-i,--ignore-case      忽略大小写差别。
8、-o, --only-matching   只显示正则表达式匹配的部分。(show only the part of a line matching PATTERN)
9、-q,--quiet           取消显示,只返回退出状态。0则表示找到了匹配的行。
10、-l,--files-with-matches  打印匹配模板的文件清单。
11、-L,--files-without-match    打印不匹配模板的文件清单。
12、-n,--line-number      在匹配的行前面打印行号。
13、-s,--silent    不显示关于不存在或者无法读取文件的错误信息。
14、-v,--revert-match   反检索,只显示不匹配的行。
15、-w,--word-regexp   如果被\<和\>引用,就把表达式做为一个单词搜索。
16、-R, -r, --recursive     递归的读取目录下的所有文件,包括子目录。 比如grep -R 'pattern' test会在 test 及其子目录下的所有文件中,匹配 pattern。
17、-V,--version           显示软件版本信息。
18、-A6          查找某些字符的内容,并下延伸6行
19、-B6          查找某些字符的内容,并上延伸2行
20、-C1          查找某些字符的内容,并上和向下各延伸1行
这几行后面的数字直接影响延伸数量,并以--符号分割搜索行的结果
三、实例
1、$ ls -l | grep '^a'         通过管道过滤ls -l输出的内容,只显示以a开头的行。
2、$ grep 'test' d*       显示所有以d开头的文件中包含test的行。
3、$ grep 'test' aa bb cc  显示在aa,bb,cc文件中匹配test的行。
4、$ grep '[a-z]\{5\}' aa 显示所有包含每个字符串有5个连续小写字符的字符串的行。
5、$ grep 'w\(es\)t.*\1' aa  如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用"\"号进行转义,直接写成'w(es)t.*\1'就可以了。
6、 ps -ef|grep clustal2       查找指定进程“clustal2”
ps -ef|grep clustal2|wc -l     查找指定进程“clustal2”的运行个数
ps -ef|grep clustal2
longpen+ 27347 26704  0 11:13 pts/5    00:00:00 grep --color=auto clustal2

  ps -ef|grep clustal2|wc -l
  1

7、cat test.txt | grep -f test2.txt

[root@localhost test]# cat test.txt 
hnlinux
peida.cnblogs.com
ubuntu
ubuntu linux
redhat
Redhat
linuxmint
[root@localhost test]# cat test2.txt 
linux
Redhat
[root@localhost test]# cat test.txt | grep -f test2.txt
hnlinux
ubuntu linux
Redhat
linuxmint
[root@localhost test]#

8、cat test.txt |grep -E "ed|at"    显示包含ed或者at字符的内容行

9、grep '[a-z]\{7\}' *.txt             显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行
注、1、在正则表达式中,注意转义字符的使用。如 
grep "$a" file #引用变量a,查找变量a的值 
grep '$a' file #查找“$a”字符串 
grep '\\' file #查找‘\’字符
grep "\\\\" file # 由于是双引号,shell先把\\转义,就成了\,grep接收到的只有\\\,\是特殊字符 ,后面应该跟需要转义的字符,也就是\\,所以如果直接使用"//"那么就出现了错误。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[1] 来自百度百科                                                   

转载于:https://www.cnblogs.com/lpp900830/p/6053592.html

http://www.lbrq.cn/news/1335151.html

相关文章:

  • 有哪些网站做明星周边/百度指数是怎么计算的
  • wordpress 手机不显示图片/百度搜索怎么优化
  • 十堰优化网站排名公司/网络销售平台有哪些
  • 哪些公司可以做网站/百度关键词排名怎么靠前
  • 睢县网站制作公司/网络推广是做什么工作的
  • 个人免费建站的网站/怎样才能注册自己的网站
  • 无锡网站建设电话/如何创建个人网页
  • 网络诚信 网站应怎么做/焊工培训ppt课件
  • 西安千叶网站建设/站长域名查询工具
  • 做微信小程序哪个网站好/关于友谊的连接
  • 网站建设泽宇/举一个病毒营销的例子
  • dedese网站/福州seo代理计费
  • 做优惠卷网站倒闭了多少钱/北京网站建设公司大全
  • 温岭自适应网站建设/网站推广优化排名公司
  • 英语故事网站建设/公众号运营
  • wordpress前台登录注册/丹东网站seo
  • 公司做网站需要准备什么/百度网首页官网登录
  • 邯郸做移动网站多少钱/百度一下你就知道了百度
  • 网站模块标准版/得物app的网络营销分析论文
  • b2b网站推广排名/提供seo顾问服务适合的对象是
  • 视频做网站背景/seo推广系统排名榜
  • 黄冈网站建设效果/长沙seo网站推广
  • 重庆的推广网站/谷歌广告平台
  • 新网站做百度推广/深圳网站开发
  • 前端电商网站开发周期/seo网站排名优化软件
  • 17一起做网站app/广州seo技术外包公司
  • 网站后台模板如何使用/seo优化方案总结
  • 上海网站建设公司价格/怎么建立网站的步骤
  • 深圳网站制作公司流程/网络服务器价格
  • 最早做美食团购的网站/百度快照查询入口
  • Elasticsearch JavaScript 客户端「基础配置」全指南(Node/TS)
  • 网站测评-利用缓存机制实现XSS的分步测试方法
  • 大数据技术入门精讲(Hadoop+Spark)
  • 自动化备份全网服务器数据平台项目
  • 读《精益数据分析》:媒体内容平台全链路梳理
  • redis(2)-java客户端使用(IDEA基于springboot)