开发者社区> 技术小甜> 正文

linux命令:grep浅谈

简介:
+关注继续查看


 grep命令简介:

       此个命令根据模式,搜索文本,并将符合模式的文本行显示出来。包含匹配,

     不是完全匹配。也就是说只要某一行有一部分匹配到就显示出来。

    *延伸阅读:模式(pattern)是指文本字符和正则表达式的元字符组合而成匹配条件

1.命令格式:egrep=grep -E  (fgrep快速搜索本文中匹配到的字符行,但是fgrep不支持         正则表达式,其他用法与grep一样。)

grep [OPTIONS] PATTERN [FILE...]

 grep -i 'root' /etc/passwd

2.命令功能:

对文本进行搜索,将符合模式的文本行显示出来。

3.命令参数:

  -i 查找时忽略大小写

 --color 模式中关键字以高亮有颜色显示出来

 -v 显示没有被模式匹配的选项

 -o 只显示被模式匹配的字符串

 -E 使用扩展正则表达式

 -A # 表示显示被模式匹配到的行,并显示后#行  #指具体数字 -A after后面的

 -B # 表示显示被模式匹配到的行,并显示前#行  #指具体数字 -B before前面的

 -C # 表示显示被模式匹配到的行,并显示前后各#行 #指具体数字

支持正则表达式:

  .:匹配任意单个字符

  *:匹配其前面的字符任意次(包括0次)

  .*:匹配任意长度的任意字符

  []:匹配指定范围内的任意单个字符

  [^]:匹配指定范围外的任意单个字符

  [:digit:]数字  [:lower:]小写字母  [:upper:]大写字母  [:punct:]字符/符号  

  [:space:]空格  [:alpha:]所有字母  [:alnum:]所有字母和数字  

   \?:匹配其前面的字符0次或1次  \表示转义

   \{m,n\}:匹配前面的字符至少m次,最多n次

   \{m,\}:匹配前面的字符至少m次

   \{0,n}:匹配前面的字符,最多n次

    \{n}:匹配前面的字符n次

支持扩展正则表达式:-E选项  grep -E = egrep 扩展正则表达式

  | : 或者表示符  比如a|bc|ca  表示a或者bc或者ca

  .:匹配任意单个字符

  []:匹配指定范围内的任意单个字符

  [^]:匹配指定范围外的任意单个字符

      *:匹配其前面的字符任意次(包括0次)

  ?:匹配其前面的字符0次或者1次

   +:匹配其前面的字符至少1次(相当于正则表达式中\{1,\})

  {m,n}: 直接使用大括号不用使用转移符\,表示至少m次,最多n次

   {n}:匹配前面的字符n次

位置锚定:(正则表达式和扩展正则表达式一样)

^: 锚定行首,此字符后面的任意内容必须出现在行首

$: 锚定行尾,此字符前面的任意内容必须出现在行尾

^$: 空白行

\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现

\>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现 

正则表达式分组符号:(扩展正则表达式不用转义符直接为())

\(\)把括号内的当着一个整体

       \(ab\)把ab当着一个整体

 后向引用(扩展正则表达式一样)

       \1: 引用第一个左括号以及与之对应的右括号所包括的所有内容

       \2:引用第二个左括号以及与之对应的右括号所包括的所有内容

       \3:引用第三个左括号以及与之对应的右括号所包括的所有内容

      \n:引用第n个左括号以及与之对应的右括号所包括的所有内容

4.命令实例:

  1、查找包含某些字符的所有行

    grep "root" /etc/passwd

[root@xuelinux ~]#  grep "root" /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

2、grep --color 以高亮显示查找到的字符

可以把别名写入配置文档 vim ~/.bashrc1

# .bashrc

   # User specific aliases and functions 

    alias rm='rm -i'

    alias cp='cp -i'

    alias mv='mv -i'

    alias grep='grep --color'

  3、grep '\([0-9]\).*\1$' /test/test1.txt 查找test1.txt文档中必须以前面第一个数字结尾的行

[root@xuelinux test]# grep '\([0-9]\).*\1$' /test/test1.txt 

2who are you 2

4 youareringt4

5,he is 2tom2

7 eg is over 11

8 thanks you 1and1

[root@xuelinux test]# cat test1.txt 

1,this is helloword!  此处没有以数字结尾

2who are you 2   此处匹配到

3,no 4 is not 2.  此处结尾是以.结尾所以未匹配到

4 youareringt4.   此处结尾是以.结尾所以未匹配到

4 youareringt4   此处匹配到,是以前面出现的数字4结尾

5,he is 2tom2   此处匹配到,是以前面出现的数字2结尾

5,he is 2tom2.   此处结尾是以.结尾所以未匹配到

6 tom is cat4,yes is 4. 此处结尾是以.结尾所以未匹配到

7 eg is over 11.  此处结尾是以.结尾所以未匹配到

7 eg is over 11  此处匹配到,是以前面出现的数字1结尾

8 thanks you 1and1  此处匹配到,是以前面出现的数字1结尾

8、取出本机表示ip地址的相关字符

ifconfig | egrep --color'(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' 

  egrep = grep -E (){3}表示前面括号里面的内容重复3次













本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1862832 ,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
linux grep 过滤多个单词
grep 做多关键词匹配,这里给出集中方法
29 0
Linux系统之grep命令基本使用
Linux系统之grep命令基本使用
51 0
LINUX grep忽略排除某些目录、文件
LINUX grep忽略排除某些目录、文件
31 0
Linux:时间日期指令(date)+查找指令(find,locate,grep)+压缩和解压指令(gzip,gunzip;zip,unzip;tar)(内含详细解释+操作实例)
Linux:时间日期指令(date)+查找指令(find,locate,grep)+压缩和解压指令(gzip,gunzip;zip,unzip;tar)(内含详细解释+操作实例)
27 0
linux:2.3.4 查找/搜索命令(find+grep)+压缩/解压缩命令(gzipbzip2+tar+mv+mkdir)
linux:2.3.4 查找/搜索命令(find+grep)+压缩/解压缩命令(gzipbzip2+tar+mv+mkdir)
29 0
Linux查看文件内容命令:cat、more、less、head、tail、grep、wc(下)
1 查看文件内容 1.1 cat命令 cat( 英文全拼:concatenate )命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
83 0
Linux查看文件内容命令:cat、more、less、head、tail、grep、wc(上)
1 查看文件内容 1.1 cat命令 cat( 英文全拼:concatenate )命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
125 0
shell编程前奏,Linux文本处理工具汇总grep、cut、sort、tee、diff、paste、tr(二)
shell编程前奏,Linux文本处理工具汇总grep、cut、sort、tee、diff、paste、tr(二)
58 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Decian GNU/Linux安全合规之路
立即下载
从 Linux 系统内核层面来解决实际问题的实战经验
立即下载
冬季实战营第二期:Linux操作系统实战入门
立即下载