Blog.039 Shell 编程 grep 与 正则表达式

2021/8/6 7:09:18

本文主要是介绍Blog.039 Shell 编程 grep 与 正则表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本章目录

 

 

 

 

1. 正则表达式概述
  1.1 基础正则表达式
  1.2 元字符类型
2. grep 概述
  2.1 grep 的 基本用法和格式
  2.2 grep 中的 正则表达式(操作实例)

 

 

 

 

1. 正则表达式概述

 

    正则表达式又称正规表达式、常规表达式。是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说, 是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定字符串。
    正则表达式一般用于脚本编程与文本编辑器中。很多文本处理器与程序设计语言均支持正则表达式,例如 Linux 系统中常见的文本处理器(grep、egrep、sed、awk)以及应用比较广泛的 Python 语言。正则表达式具备很强大的文本匹配功能,能够在文本海洋中快速高效地处理文本。


  1.1 基础正则表达式

 

    正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达式。基础正则表达式是常用正则表达式最基础的部分。
    在 Linux 系统中常见的文件处理工具中 grep 与 sed 支持基础正则表达式,而 egrep 与 awk 支持扩展正则表达式。


  1.2 元字符类型

^:锚定行的开始 如:'^grep' 匹配所有以 grep 开头的行。
$:锚定行的结束 如:'grep$' 匹配所有以 grep 结尾的行。 
.:匹配一个非换行符的字符 如:'gr.p' 匹配gr后接一个任意字符,然后是 p。 
*:匹配零个或多个先前字符 如:'*grep' 匹配所有一个或多个空格后紧跟 grep 的行。
[ ]:匹配一个指定范围内的字符 如:'[Gg]rep' 匹配 Grep 和 grep。 
[^]:匹配一个不在指定范围内的字符 如:'[^A-FH-Z]rep' 匹配不包含 A-R 和 T-Z 的一个字母开头,紧跟 rep 的行。
/(../):标记匹配字符 如:'/(love/)',love 被标记为 1 。
/<:锚定单词的开始  
/>:锚定单词的结束 如:'grep/>' 匹配包含以 grep 结尾的单词的行。
x/{m/}:重复字符x,m次

如:'o/{5/}' 匹配包含5个 o 的行。 x/{m,/} 重复字符 x ,至少 m 次;

              如:'o/{5,/}' 匹配至少有5个 o 的行。

x/{m,n/}:重复字符x 至少m次,不多于n次,如:'o/{5,10/}' 匹配 5--10 个 o 的行。
/w:匹配文字和数字字符

也就是 [A-Za-z0-9_],如:'G/w*p' 匹配以 G 后跟零个或多个文字或数字字符,然后是 p 。

/W:/w的反置形式 匹配一个或多个非单词字符,如点号句号等。
/b:单词锁定符 如: '/bgrep/b' 只匹配 grep 。
.*:一起用代表任意字符  

 

2. grep 概述

    grep 命令是一种强大的文本搜索工具 , 根据用户指定的 “模式” 对目标文本进行匹配检查 , 打印匹配到的行由正则表达式或者字符及基本文本字符所编写的过滤条件确定。


  2.1 grep 的 基本用法和格式

 

  • 格式:
  • grep -[acinv] '搜索内容串' filename

 

  • -a 以文本文件方式搜索;
  • -c 计算找到的符合行的次数;
  • -i 忽略大小写;
  • -n 顺便输出行号;
  • -v 反向选择,即显示不包含匹配文本的所有行;
  • -h 查询多文件时不显示文件名;
  • -l 查询多文件时只输出包含匹配字符的文件名;
  • -s 不显示不存在或无匹配文本的错误信息。

 

 

  • grep命令加- E参数,这一扩展允许使用扩展模式匹配。
  • 其中搜索串可以是正则表达式


  2.2 grep 中的 正则表达式(操作实例)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 



这篇关于Blog.039 Shell 编程 grep 与 正则表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程