linux正则命令 linux中的正则表达式

Linux正则表达式教程:Grep Regex示例 正则表达式是特殊字符,可帮助搜索数据,匹配复杂模式 。正则表达式缩写为“regexp”或“regex” 。
为了便于理解,让我们逐一学习不同类型的正则表达式 。
[TOC]
一些常用的正则表达式命令是tr , sed,vi和grep 。下面列出了一些基本的正则表达式 。
我们来看一个例子吧 。
执行cat示例以查看现有文件的内容
搜索包含字母'a'的内容 。
'^'匹配字符串的开头 。让我们搜索一下STARTS的内容
仅过滤以字符开头的行 。将忽略开头不包含字符“a”的行 。
让我们看看另一个例子 -
仅选择那些以 $ 结尾的行
这些表达式告诉我们字符串中字符的出现次数 。他们是
例:
过滤掉包含字符'p'的所有行
我们想要检查字符'p'是否在字符串中依次出现2次 。为此,语法将是:
注意:您需要使用这些正则表达式添加-E 。
这些正则表达式包含多个表达式的组合 。他们之中有一些是:
例:
搜索所有字符't'
假设我们要过滤字符'a'在字符't'之前的行
我们可以使用命令
大括号扩展的语法是花括号“{}”内的序列或逗号分隔的项目列表 。序列中的起始和结束项由两个句点“..”分隔 。
一些例子:
在上面的示例中 , echo命令使用大括号扩展创建字符串 。
Linux正则表达式一.linux文本查找命令
在说linux正规表达式之前 , 还介绍下linux中查找文本文件常用的三个命令:
1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本 。
2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本 。
3.fgrep : 快速grep,这个版本匹配固定字符串而非正则表达式 。并且是唯一可以并行匹配多个字符串的版本 。
如下简单的介绍grep命令:
语法格式:
grep [options ...] pattern-spec [files ...]
用途:
匹配一个或多个模式的文本行 。
options:
-E : 使用扩展正则表达式进行匹配 ,  grep -E 或取代 egrep 命令 。
-F : 使用固定字符串进行匹配,grep -F 或取代传统的fgrep命令 。
-e : 通常第一个非选项的参数认为是要匹配的模式,也可以同时提供多个模式,只要将其放入单引号,并用换行字符分隔他们 。
模式以减号开头时 , 为防止混淆其为选项 , -e选项说明其后的参数为模式,即使他以减号开头 。
-f : 从pat-file文件读取模式作为匹配 。
-i : 模式匹配时忽略大小写差异 。
-l : 列出匹配模式的文件名称,而不是打印匹配的行 。
-q : 静默的 , 如果匹配成功,不将匹配的行输出到标准输出;否则即是不成功 。
-s : 不显示错误信息,通常与-q并用 。
-v : 显示不匹配模式的行 。
说明:可以同时查找多个文件中的内容,当指定多个文件时,每个显示出的文件行前会有文件名加一个冒号标识其来自哪个文件 。
可以使用多个-e 或 -f 选项 , 建立要查找的模式列表 。
二.正则表达式简要介绍
1.正则表达式的组成
(1).一般字符:没有特殊意义的字符
(2).特殊字符(meta字符):元字符,有在正则表达式中有特殊意义
2.如下讲下正则表达式中的常见meta字符
(1).POSIX BRE与ERE中都有的meta字符:
\:通常用于打开或关闭后续字符的特殊含义 , 如\(...\)与\{...\}
.:匹配任何单个字符(除NUL)
*:匹配其前的任何数目或没有的单个字符,例: . 表示任一字符,则 .* 匹配任一字符的任意长度

推荐阅读