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系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用
|
3月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
344 8
|
3月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1129 6
|
3月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
195 3
|
3月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
144 2
|
21天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
34 11
|
2月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
100 14
Linux 10 个“who”命令示例
|
2月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
203 20
|
2月前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
143 8
|
2月前
|
监控 Linux 数据处理
Linux grep技巧 结合awk查询
结合 `grep` 和 `awk`,可以实现灵活、高效的文本处理和数据分析。`grep` 用于快速过滤符合条件的行,`awk` 用于进一步处理和提取数据。这种组合使用在日志分析、数据处理和系统监控等场景中尤为常见。掌握这两者的基本用法和组合技巧,可以大大提升在 Linux 环境下的工作效率。
61 7