一、grep、egrep含义

grep:(global search regular expression(RE)and print out the line);文本搜索工具,根据用户指定的文本模式(PATTERN)对目标文件进行逐行搜索,并显示能够被模式匹配到的行。

egrep:相当于 grep -E ;使用扩展正则表达式来构建模式。


为了更好的阅读和区分其中的元字符和选项,都以红色和加粗标识出来。

在文中截图中的命令egrep没有使用选项加颜色,使用的是临时更改的环境变量:命令:

       export GREP_OPTINOS='--color=auto'

       export GREP_COLOR='01;31'


二、基本用法

1、格式:grep [options] 'PATTERN' file, ...(可以指定多个文件)

--color=auto:可以高亮显示匹配到的内容;

2、参数

2.1:常用参数

-v:反向显示,显示不能被模式所匹配到的行;

-o:只显示被模式匹配到的字串,而非整行;

-i:不区分字符大小写。ignore-case;

-E:支持扩展正则表达式;

-A#:显示匹配到的内容及其下面#行;

-B#:显示匹配到的内容及其上面#行;

-C#:显示匹配内容及其上下各#行;

2.2:其他参数

-s--no-messages: 不显示错误信息。

-V--version: 显示版本信息。

-w--word-regexp: 只显示全字符合的列。

-x--line-regexp: 只显示全列符合的列。

-y: 此参数的效果和指定“-i”参数相同。

--help 在线帮助。

同时也可以使用man grep来查看具体的详细参数与说明。

三、正则表达式

1、含义:正则表达式(Regular Expression);正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

       基本正则表达式和扩展正则表达式:工作于贪婪模式,尽可能长的匹配字符;

2、基本正则表达式元字符

字符匹配:

.:匹配任意单个字符;

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

范围:

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

次数匹配:

*:匹配其前面字符的任意次;0次或多次

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

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

\{m\}:匹配m次;

\{m,n\}:匹配至少m次,至多n次;

\{m,\}:匹配至少m次;

\{0,n\}:匹配至多n次;

位置锚定:

^:锚定行首;

$:锚定行尾;

\<|\b:锚定词首;

\>|\b:锚定词尾;

^$:为空白行;

分组:

\(\):分组

\#:#为数字;对分组的字符串基于位置进行引用;

例:\1;引用前面的第一个左括号以及与之对应的右括号中的模式所匹配的内容。

3、扩展正则表达式元字符:大部分与正则表达式的元字符是相同的,但是\转义符是不需要添加的。

字符匹配:

.:任意单个字符;

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

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

次数匹配:

*:其前面的字符任意次;

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

+:匹配其前面的字符至少1次;

{m}:匹配其前面的字符m次;

{m,n}:至少m次,至多n次;

{m,}:至少m次;

{0,n}:至多n次;

锚定:与基本正则表达式相同;

分组:

():分组;

|:或者;

四、具体的实例

显示/proc/meminfo中以大小写S开头的行;

取出默认shell为非bash的用户;

显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

添加用户bash和testbash、basher,而后找出当前系统上其用户名和默认shell相同的用户;

写一个匹配规则可以匹配IP地址:1.0.0.1--223.255.255.254

1
egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-2][0-3])\.([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>"

本文转自Mr_陈 51CTO博客,原文链接:http://blog.51cto.com/chenpipi/1360509,如需转载请自行联系原作者

文本处理工具grep、egrep的具体用法相关推荐

  1. 文本处理工具--grep

    一.文本处理工具-grep Linux有被称为文本处理三剑客的工具 grep.sed.awk,本文来讲grep 1.简单的介绍 grep 文本过滤工具,全称为 Global search REgrla ...

  2. shell浅谈之七文本处理工具grep、sed、awk

    一.简介 Bash Shell提供了功能强大的文件处理工具:sed(流编辑器stream editor)和awk,都可使用正则表达式进行模式匹配.而grep又有助于理解sed和awk. 二.grep命 ...

  3. 【Linux】 字符串和文本处理工具 grep sed awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...

  4. Linux文本搜索工具grep

    简介 grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文件内容,并把域值所匹配的行打印出来 grep命令语法结构 grep [options] '要搜索的字符串' filename gre ...

  5. shell文本处理工具grep

    shell脚本之grep工具 grep是 行 过滤工具:用于根据关键字进行行过滤. 语法和选项 语法: #grep [选项] '关键字' 文件名 常见选项 OPTIONS -i :不区分大小写 -v ...

  6. linux 文本搜索命令 grep egrep fgrep 区别

    grep 传统的 grep 程序, 在没有参数的情况下, 只输出符合 RE 字符串之句子. 常见参数如下: -v: 逆反模示, 只输出"不含" RE 字符串之句子. -r: 递归模 ...

  7. llinux文本三剑客之grep、egrep及相应的正则表达式和用法

    Linux文本三剑客之grep族以及相应的正则表达式 Grep族是什么? Grep族是linux学习中搜索文本的重要工具,它基于使用正则表达式来快速简洁的搜索你想要查看的文本.是搜索文本的不二之选 什 ...

  8. 文本处理工具及正则表达式

    1.文本处理工具 1)cat命令 cat: 1.作用:将一个或多个文件或标准输入连接,并输出至标准输出,常用来查看文本文件内容 2.参数: -E:用$表示行尾 -n:对所有行加行号 -s:相邻空行为一 ...

  9. linux文本三剑客演讲稿,linux文本三剑客之grep

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...

最新文章

  1. 大数据中用到的新的数据类型bigint、decimal、smallint、tinyint
  2. 项目管理一般知识:项目生命周期
  3. 计算机统计知识,计算机知识在统计工作中的重要性
  4. TCP协议-相关面试题
  5. 实现Github和Coding仓库等Git服务托管更新
  6. hdfs是nas_HDFS 协议是怎么回事
  7. springboot-21-maven多环境打包
  8. 008.一个简单的网络服务器开发----回声服务器
  9. 交叉编译工具链的安装以及介绍
  10. 常用芯片数据手册—— INA333 低功耗、精密仪表放大器(德仪)
  11. java 图片处理之寸照背景色替换
  12. 重新回来,介绍一下Android Studio 如何继承腾讯云直播 以及 腾讯云通信
  13. 从球域采样分布分析360质量评估
  14. JavaWeb项目监听数据表变化并通知前台(数据来源于自身)
  15. 小微企业都在用的一体化管理解决方案
  16. python基础教程十进制_Python基础教程(五):数字、字符串
  17. Linkflow+微信公众号:如何提升首购率
  18. OVERLAPPED I/O 异步APC
  19. 大疆遥控器向手机充电
  20. Android(thirteen)

热门文章

  1. [POI2009]石子游戏Kam
  2. FastAdmin composer json 版本说明
  3. JS编写自己的富文本编辑器
  4. 【译】Input Method Manager (IMM):输入法管理器
  5. Quartz.NET 入门
  6. hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE)...
  7. 魅族m8开发 step by step(1)(让程序跑起来)
  8. ip地址伪装php,技术教程:如何使用浏览器插件伪装IP地址
  9. php5 mysql 源_thinkphp6:访问多个mysql数据源(thinkphp6.0.5 / php 7.4.9)
  10. C++ 常见错误(01) —— error LNK1104: 无法打开文件“avcodec.lib”