Linux中的正则表达式基本用法

正则表达式:模式匹配语言,有其自身语法和规则,其中最重要的是元字符,通常用单引号括起

使用greb匹配文本(greb基本用法是提供一个正则表达式和一个文件,但该文件中应该有此正则表达式的匹配项)

grep : (global research print), 根据某个模式,搜索文本,并将符合模式的文本行显示出来。

模式 (pattern): 由文本字符和正则表达式的元字符组合而成的匹配条件。

Greb选项

-i  使用提供的正则表达式,但不会强制区分大小写

-v  1.仅显示不包含正则表达式匹配项的行(注:默认情况下显示匹配到的行)2.匹配所有以#或;开头的行(注:#和;表示行将被解释为注释的典型字符)

-r  将递归的匹配正则表达式的数据搜索应用到一组文件或目录中

-e  若使用多个-e选项,则可以提供多个正则表达式,并将于逻辑or一起使用

-A<number>    显示正则表达式匹配项之后的行数

-B<number>    显示正则表达式匹配项之前的行数

-o  表示只显示被模式匹配到的字符串,默认情况下显示匹配到的整行内容

--color  将匹配到的字符串以高亮颜色显示出来

正则表达式的基本语法

^  锚定行首,此字符串后边的任意内容必须出现在行首 例: grep "^l" file3

$  锚定行尾,此字符前面的任意内容必须出现在行尾 例:[[email protected] Desktop]$ grep "e$" file3

^$  表示匹配空白行例:[[email protected] Desktop]$ grep "^$" file3

\<  锚定词首,其后面的任意字符必须作为单词的首部出现 ,例:[[email protected] Desktop]$ grep "\<lo" file3

lover

look

lookuop

\>  锚定词尾,其前面的任意字符必须作为单词的尾部出现 ,例:[[email protected] Desktop]$ grep "ily\>" file3

my family is farm

we are family

\<\>  精确匹配 例:[[email protected] Desktop]$ grep "\<family\>" file3

my family is farm

we are family

*  匹配其前面的字符任意次 例:[[email protected] Desktop]$ grep "o*" file3(匹配出现o任意次的字符) [[email protected] Desktop]$ grep "o*t" file3(匹配前面的o可以出现任意次,但必须以t结尾) [[email protected] Desktop]$ grep "oo*" file3(表示第一个o必须匹配,*紧连的o可出现任意次)

.*  表示任意长度的任意字符 例:[[email protected] Desktop]$ grep ".oo*" file3

\?  匹配其前面的字符一次或者零次 (a?b), 有时候 ? 要使用 \ 转义才可以使用。例:[[email protected] Desktop]$ grep "lo\?" file3(表示l必须匹配,o可出现一次或零次)

\{m,n\} \ 用来转义,防止 {} 被 bash 来解析;匹配其前面的字符至少 m 次,最多 n 次 ;(\{1,\}: 表示最少 1 次,无上限 ) 。 \{0,3\} 表示最多 3 次 例:[[email protected] Desktop]$ grep "loo\{1,2\}" file3(表示lo必须匹配,紧跟的o至少1次,最多两次)

.  匹配任意单个字符  例:[[email protected] Desktop]$ grep ".k" file3(后面的k必须匹配,前面任意匹配一个字符)

look

lookuop

took

lo ok root rool

[]  匹配指定范围内的任意单个字符 ,例:[[email protected] Desktop]$ grep "[famhs]" file3(表示只要有括号里的任何一个,则都可以匹配)

cat

my family is farm

we are family

me

[^]  匹配指定范围外的任意单个字符 ,例:[[email protected] Desktop]$ grep "[^foamhs]" file3(表示只要不是括号里的单个字符就能匹配)

\(\)  将内容分组 , 也可以做后向引用 ,\1 表示调用前面第一个 () 中匹配到的内容,依次类推 ;

如: \(ab\)*  表示任意数量 ab 字符串 , 把 ab  当做一个整体, ab 可以出现 0 次或多次 ,* 修饰的是 ab 这个整体

例:

He love his lover

She like her liker

He love his liker

She like her lover

1.[[email protected] Desktop]$ grep "\(l..e\)" txt(表示匹配以l开头以e结尾,中间可匹配两个字符的任意字符)

he love his lover

she like her liker

he love his liker

she like her lover

2.[[email protected] Desktop]$ grep "\(l..e\)." txt(表示匹配以l开头以e结尾,中间可匹配两个字符且后匹配任意一个单个字符)

he love his lover

she like her liker

he love his liker

she like her lover

3.[[email protected] Desktop]$ grep "\(l..e\).*" txt

he love his lover

she like her liker

he love his liker

she like her lover

4.[[email protected] Desktop]$ grep "\(l..e\).*\1" txt(表示匹配前面第一个括号里匹配到的内容)

he love his lover

she like her liker

时间: 2024-12-02 22:03:16

Linux中的正则表达式基本用法的相关文章

linux 中的正则表达式用法小结

首先:在linux中 ,正则表达式是针对文件内容而言的.查用在shell的grep,sed ,awk等相关命令之中. 正则表达式的元字符: .  : 表示任意字符 字符次数锚定: * : 表示* 之前的字符或模式出现任意次,其中包括0次 ?:   表示?之前的字符出现0次或一次,需要注意的是,在linux中需要是\?. \{m,n\}:表示其前面的字符或模式出现至少m次,至多n次 \{m,\}: 表示其前面的字符至少出现m次 \{0,n\}:表示其前面的字符至多出现n次 位置锚定: ^: 表示以

Linux中特殊符号的用法

在shell中常用的特殊符号罗列如下: # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $* \"string\"* **   ? : ^ $#   [email protected] `command`{}   [] [[]] ()   (()) ||   && {xx,yy,zz,...}~   ~+   ~-   &   \\<...\\>   + - %=   ==   != #井号 (co

Linux中yum和apt-get用法及区别

Linux中yum和apt-get用法及区别 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debian.Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包,安装rpm包的命令是"rpm -参数" 2 包管理工具  yum 3 支持tar包 Debian系列 1 常见的安装包格式 deb包,安装deb包的命令是"dpkg -参数" 2 包管理工具 apt-get

Linux中gcc编译器的用法

在Linux环境下进行开发,gcc是非常重要的编译工具,所以学习gcc的基本常见用法时非常有必要的. 一.首先我们先说明下gcc编译源文件的后缀名类型 .c为后缀的文件,C语言源代码文件:  .a为后缀的文件,是由目标文件构成的档案库文件:  .C,.cc或.cxx 为后缀的文件,是C++源代码文件:  .h为后缀的文件,是程序所包含的头文件:  .i 为后缀的文件,是已经预处理过的C源代码文件:  .ii为后缀的文件,是已经预处理过的C++源代码文件:  .m为后缀的文件,是Objective

javaScript中有关正则表达式的用法总结

js中处理正则表达式的类:RegExp 用法: var reg=new RegExp("express"); 或者: var reg=/express/; js中常用的6个方法: test():是否存在 exec():返回查询值 match():得到查询的数组 search():返回搜索的位置 replace():替换 split():分割成数组 这些方法,里面的参数都是正则表达式. js中常用的4大类: 简单类.负向类.组合类.范围类. 简单类:/[123]qqqq/gi:表示开头必

Linux中grep的常见用法总结

grep是linux中文本编辑类的命令,用于选取所需要的文本内容 主要格式: grep [option] "PATTERN" FILENAME option: -i 忽略大小写 -o 只显示匹配到的字符 -v 反向显示(显示没有匹配到的行) --color 用颜色标注显示匹配到的字符 "PATTERN":支持REGEXP(正则表达式) 1.字符匹配: .  :匹配一个字符 [] :字符匹配区间 例如:[a-z] [^]:字符匹配反向区间 例如:[^a-z] 2.字符

linux中grep命令的用法(转)

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:grep  [选项]  ”模式“  [文件] grep家族总共有三个:grep,egrep,fgrep. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印. -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的某一部分

linux中grep命令的用法

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的.首先谈一下grep命令的常用格式为:grep  [选项]  "模式"  [文件] grep家族总共有三个:grep,egrep,fgrep. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印. -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的

Linux中find命令大全-用法示例

Linux中find常见用法示例 find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数: path: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录.-print: find命令将匹配的文件输出到标准输出.-exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' { } \;,注意{ }和\:之间的空格.-ok: 和-exec的作用相同,只