Linux命令学习手册-grep命令_第1页
Linux命令学习手册-grep命令_第2页
Linux命令学习手册-grep命令_第3页
Linux命令学习手册-grep命令_第4页
Linux命令学习手册-grep命令_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 grep OPTIONS PATTERN FILE. grep OPTIONS -e PATTERN | -f FILE FILE.【功能】grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索(指定文件中的)文本,并把匹配的行打印出来。【举例】*显示测试文件testFile的内容:$cat testFile输入之后,输出如下:hello, this is a filethis file used for test thecomman

2、d of grep.do you know?yes yeeeeeees i knooooooww!the west iswhat is ves?this is a worldwhich is tes good.west teswesteseswesteseseswest tesves这就是我们要测试的文件的内容。*在当前目录及子目录所有文件中查找字符串test:$ grep -r 'test' *输入之后,输出如下:good/test2:this is a test for thegood/test2:test the string.test2:grep test fortes

3、t2:used to test thetest3:grep test fortest3:used to test thetestFile:this file used for test the这个应该是最常使用的命令了。-r选项的意思就是递归搜索子目录的意思。*查找test并给结果中匹配的字符串加上颜色:$grep -color 'test' *这样,会把输出结果中的所有匹配的test字符串标上颜色。*要在当前目录下所有.doc文件中查找字符串"sort":$ grep "sort" *.doc *显示匹配得行数:$ grep -c &q

4、uot;we" testFile输入之后,输出如下:5这样,显示匹配we的行的数目。*显示含有we字符的行,并打印行号:$ grep -n "we" testFile输入之后,输出如下:6:the west is10:west tes11:westeses12:westeseses13:west tesves这样,会在输出的结果的最左侧打印匹配的行号。*显示不匹配we的行:$ grep -v "we" testFile输入之后,输出如下:hello, this is a filethis file used for test thecomman

5、d of grep.do you know?yes yeeeeeees i knooooooww!what is ves?this is a worldwhich is tes good.这里-v选项表示显示不匹配we的行。*忽略大小写的匹配:$ ls |grep -i 'file'输入之后,输出如下:testFile这样,添加了-i选项,匹配file的时候,不会区分大小写。*范围的匹配:$ grep 'hae' testFile输入之后,输出如下:hello, this is a filethis file used for test thethe west

6、iswhat is ves?这里匹配的或者是ha或者是he,好像a,e也行?好像这样也包括','逗号了。*仅显示包含test匹配的文件:$ grep -l 'test' *输入之后,输出如下:test2test3testFile这里,-l选项仅列出含有匹配字符串的文件。*显示ls -l输出内容中,以d开头的行:$ls -l | grep 'd'或$ls -l |grep d输入之后,输出如下:drwxr-xr-x 2 vaqeteart member 4096 Jul 12 18:44 good这里,good是一个目录。*显示ls -l输出内容中

7、,不以d开头的行:$ ls -l |grep 'd'输入之后,输出如下:total 16-rw-r-r- 1 vaqeteart member 7 Jul 12 18:42 2-rw-r-r- 1 vaqeteart member 114 Jul 12 18:42 test2-rw-r-r- 1 vaqeteart member 212 Jul 12 19:01 testFile这里,利用来指定不包含的字符。*显示所有以t开头的文件中包含test的行$ grep 'test' t*输入之后,输出如下:test2:grep test fortest2:used t

8、o test thetestFile:this file used for test the这里,冒号左侧是对应行的文件名。*显示在testFile,test2文件中匹配test的行:$grep 'test' testFile test2或$ grep test testFile test2输入之后,输出如下:testFile:this file used for test thetest2:grep test fortest2:used to test the为保险期间,后面最好在搜索的时候加上''.*显示testFile中有至少5个连续小写字符的字符串的行:

9、$ grep 'a-z5' testFile输入之后,输出如下:hello, this is a filecommand of grep.yes yeeeeeees i knooooooww!this is a worldwhich is tes good.westeseswesteseseswest tesves*显示testFile中有开头至少5个连续小写字符的字符串的行:$ grep 'a-z5,' testFile输入之后,输出如下:hello, this is a filecommand of grep.which is tes good.westes

10、eswesteseses*显示testFile中含有以th为开始的单词的行:$ grep '<th' testFile输入之后,输出如下:hello, this is a filethis file used for test thethe west isthis is a world这里,以th为开始的单词有:this和the。*显示testFile中含有以st结尾的单词的行:$ grep 'st>' testFile输入之后,输出如下:this file used for test thethe west iswest teswest tesve

11、s这里,以st结尾的单词有test和west。*利用标记的搜索:$ grep 'w(es)t t1v1' testFile输入之后,输出如下:west tesves这里,根据正则表达式()括号内的内容es匹配之后会被标记为1,这样以后可以用1来代替es了。这里相当于搜索:grep 'west tesves' testFile。如果用egrep或grep -E,就不用""号进行转义可以直接用1这个标号了。【描述】 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、 egrep

12、和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是 fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux 使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。 grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。 grep可用于shell脚本,因为gre

13、p通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。 grep的一些选项:-? 同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。-b,-byte-offset 打印匹配行前面打印该行所在的块号码。-c,-count 只打印匹配的行数,不显示匹配的内容。-f File,-file=File 从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。-h,-no-filename 当搜索多个文件时,不显示匹配文件名前缀。

14、-i,-ignore-case 忽略大小写差别。-q,-quiet 取消显示,只返回退出状态。0则表示找到了匹配的行。-l,-files-with-matches 打印匹配模板的文件清单。-L,-files-without-match 打印不匹配模板的文件清单。-n,-line-number 在匹配的行前面打印行号。-s,-silent 不显示关于不存在或者无法读取文件的错误信息。-v,-revert-match 反检索,只显示不匹配的行。-w,-word-regexp 如果被<和>引用,就把表达式做为一个单词搜索。-V,-version 显示软件版本信息。【其它】*用于grep正

15、则表达式的元字符集(基本集) : 锚定行的开始 如:'grep'匹配所有以grep开头的行。 $ 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 .匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。 * 匹配零个或多个先前字符 如:'a*'匹配一个或多个a字符,'*grep'匹配一个或多个空格后紧跟grep。.* 代表任意字符。 匹配一个指定范围内的字符,如'Ggrep'匹配Grep和grep。 匹配一个不在指定范围内的字符,如:'A-FH-Zrep&

16、#39;匹配不包含A-R和H-Z范围的一个字母开头,紧跟rep的行。 (.) 标记匹配字符,如'(love)',love被标记为1,这样如果同一表达式再引用love时,只需要利用1即可。 < 锚定单词的开始,如:'>' >锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。 xm 重复字符x,m次,如:'o5'匹配包含5个o的行。 xm, 重复字符x,至少m次,如:'o5,'匹配至少有5个o的行。 xm,n 重复字符x,至少m次,不多于n次,如:'o5,10'匹

17、配5-10个o的行。 w 匹配文字和数字字符,也就是A-Za-z0-9,如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。 W w的反置形式,匹配一个或多个非单词字符,如点号句号等。 b 单词锁定符,如: 'bgrepb'只匹配grep。*用于egrep和 grep -E的元字符扩展集 (不是很熟?)+ 匹配一个或多个先前的字符。如:'a-z+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。 ? 匹配零个或一个先前的字符。如:'gr?p'匹配g后跟一个或没有r字符,然后是p的行。 a|b|c 匹配a或b或c。如:grep|sed匹配grep或sed () 分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。 xm,xm,xm,n 作用同xm,xm,xm,n *POSIX字符类 (不是很熟?)为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如:alnum

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论