码迷,mamicode.com
首页 > 系统相关 > 详细

Linux命令学习:grep文本搜索工具

时间:2015-12-28 18:46:23      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:linux   grep   egrep   

Mark: 本系列博文只是记录作者在Linux学习过程中的点点滴滴,新手可能参考,高手们就略过吧!!!


Linux学习总结:grep文本搜索工具

 

功能:根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,并把匹配的行打印出来,它的全称为“Global Regular Expression Print”,全局正则表达式,它默认是开放给所有用户。

 

语法格式:Grep [option] pattern file

 

Option:命令选项,具体包含:

 

-v: --revert-match 反向选取,显示不包含匹配文件的所有行;

-i: --ignore-case 忽略字符大小写;

-c: --count 计算符合样式的列数

-E: --extended-regexp 支持使用正则表达式;

-A: --after-context 除了显示符合范本样式的列之外,并显示该行之后的内容

-B: --before-context除了显示符合范本样式的列之外,并显示该行之前的内容

-C: --context除了显示符合范本样式的列之外,并显示该行之前后的内容

-n: --line-number 在显示符合样式的那一行之前同时标记出该行的列数编号;

 

实例一、显示文件“/tmp/testin.sh”里面不包含“Linux”的所有行

命令:grep –v–n “Linux” /tmp/testin.sh

技术分享


实例二、查询文件“/tmp/testin.sh”里关键字“Linux”不区分大小写的所有行

命令:grep -v -n "Linux" /tmp/testin.sh

技术分享


实例三、显示包含大小写“Linux”关键字的所有行,并计算总数

命令:grep -v -n -c "Linux" /tmp/testin.sh

技术分享


正则表达式:是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能。

 

正则表达式元字符,其中:

 

字符匹配:

“.”  : 匹配任意单个字符,如”grep.p”匹配grep后接一个任意字符;

“[]”  : 匹配指定范围内的任意个字符,如”[Gg]rep”匹配Grep grep;

“[^]” : 匹配不在指定范围内的任意个字符,如”[^a-z]grep”匹配不包含”a-z”的字母开头,紧接着grep

 

位置锚定:

“^” : 行首定位符,”^grep”匹配所有以grep开头的行;

“$” : 行尾定位符,”grep$”匹配所有以 grep结尾的行;

“^$”: 空白行;

“\<”: 锚定单词的开始,如:”\<grep”匹配包含以”grep”开头的单词的行;

“\>”:锚定单词的结束,如:”grep\>”匹配包含以”grep”结尾的单词的行;

 

次数匹配:

“*”    : 匹配零个或多个字符,如”*grep”匹配所有一个或者多个空格后接着grep的行;

“.*”   : 匹配任意字符;

“\?”   : 零次或者壹次,前面的字符可有可无,如”gr\?ep”,代表可以是grepep

“\{m\}” : 重复m次,如”grep\{2\}”,匹配包含至少2”grep”的行;

“\{m,\}”: 重复字符至少m次,如”grep\{2,\}”匹配至少有2grep的行;

“\{m,n\}”: 重复字符至少m次,至多n次,如”grep\{2,3\}”匹配23grep的行;

 

POSIX字符:

[:alnum:] :文字数字字符;

[:alpha:] : 文字字符;

[:digit:] : 数字字符;

[:graph:] : 非空字符(非空格、控制字符);

[:lower:] : 小字字符;

[:print:] : 非空字符,包括空格;

[:space:] : 所有空白字符(新行、空格、制表符);

[:upper:] : 大写字符;

[:punct:] : 标点符号;


实例四、显示文件“/tmp/test.grep”中单词为“Grep”、“grep

命令:grep –n “[Gg]rep” /tmp/test.grep

技术分享


实例五、显示文件“/tmp/test.grep”中以“grep”开头的行

命令:cat /tmp/test.grep | grep ^grep

技术分享


实例六、显示文件“/tmp/test.grep”中以“grep”结尾的行

技术分享


实例七、显示/tmp/test.grep中以至少一个空白字符结尾的行;

命令:grep -n "[[:space:]]\{1,\}$" /tmp/test.grep

技术分享


待续!

本文出自 “Near的家园” 博客,谢绝转载!

Linux命令学习:grep文本搜索工具

标签:linux   grep   egrep   

原文地址:http://nearlv.blog.51cto.com/2432295/1729198

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!