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 ,如需转载请自行联系原作者


相关文章
|
7天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
67 6
|
8天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
34 3
|
8天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
26 2
|
16天前
|
缓存 监控 Linux
|
19天前
|
Linux Shell 数据安全/隐私保护
|
20天前
|
域名解析 网络协议 安全
|
3天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
20 3
|
26天前
|
运维 监控 网络协议
|
27天前
|
监控 Linux Shell
|
8天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
30 3
下一篇
无影云桌面