linux 正则表达式 使用grep命令

最常应用正则表达式命令是 awk sed grep

[[email protected] ~]# cat mike.log
I am mike!
I like linux.

I like play football, tennis and reading.
my qq is 123456789!
my blog is https://i.cnblogs.com
my blog is i.miek.com
I am miek.
not MIEK
NOT MIKE

基础正则字符说明

1.^word 匹配以word开头的内容  vi/vim编辑器里^代表一行的开头

2.word$ 匹配以word结尾的内容  vi/vim编辑器里$代表一行的结尾

3. ^$ 表示空行

a.过滤出来以m开头的行

[[email protected] ~]# grep "^m" mike.log
my qq is 123456789!
my blog is https://i.cnblogs.com
my blog is i.miek.com

b.过滤出来以m结尾的行

[[email protected] ~]# grep "m$" mike.log
my blog is https://i.cnblogs.com
my blog is i.miek.com

c.过滤匹配空行的行

grep -n 显示匹配的行号

[[email protected] ~]# grep -n ‘^$‘ mike.log
3:
11:

grep -v 排除内容  指定字段不显示

过滤出 不带 空行的行,其他行都打印

[[email protected] ~]# grep -vn "^$" mike.log
1:I am mike!
2:I like linux.
4:I like play football, tennis and reading.
5:my qq is 123456789!
6:my blog is https://i.cnblogs.com
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE

4. . 代表且只能代表任意一个字符。

5. \ 转义

6. * 重复0个或多个前面的一个字符 例如o* 匹配没有o,有一个o或多个o

7 .* 匹配所有字符  ^.*以任意多个字符开头, .*$ 以任意多个字符结尾

a. 匹配任意一个字符  .

因为第三行没有字符 没有匹配到

[[email protected] ~]# grep -n "." mike.log
1:I am mike!
2:I like linux.
4:I like play football, tennis and reading.
5:my qq is 123456789!
6:my blog is https://i.cnblogs.com
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE

.*

[[email protected] ~]# grep -n ".*" mike.log
1:I am mike!
2:I like linux.
3:
4:I like play football, tennis and reading.
5:my qq is 123456789!
6:my blog is https://i.cnblogs.com
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE
11:

匹配 mi..    .. 任意字符

[email protected] ~]# grep -n "mi.." mike.log
1:I am mike!
7:my blog is i.miek.com
8:I am miek.

grep -i 不区分大小写

[[email protected] ~]# grep -ni "mi.." mike.log
1:I am mike!
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE

匹配以.结尾 需要转义

[[email protected] ~]# grep -n "\.$" mike.log
2:I like linux.
4:I like play football, tennis and reading.
8:I am miek.

-o 只显示匹配的内容

[[email protected] ~]# grep -no "mi.." mike.log
1:mike
7:miek
8:miek

8. [abc]  匹配字符串集合内任意一个字符 [a-zA-Z],[0-9]

9. [^abc]  匹配不包含^后的任意一个字符的内容

中括号里的^为取反

匹配0-9数字的行 匹配数字的行

[[email protected] ~]# grep  "[0-9]" mike.log
my qq is 123456789!

原文地址:https://www.cnblogs.com/mingerlcm/p/10930900.html

时间: 2024-10-30 08:36:41

linux 正则表达式 使用grep命令的相关文章

正则表达式和grep命令的用法

正则表达式和grep命令的用法: 一.正则表达式: 正则表达式(也称为regular Expression,简称RE)就是由普通字符(例如字符a到z)以及特殊字符(称之为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.gr

正则表达式与grep命令

一.引言 介绍Linux系统中的两个命名:grep,egrep.要想使用这2个命令要先学会使用正则表达式,在介绍正则表达式之前,先说明一下,大家都熟知的在word中使用的通配符,即: *:表示任意长度任意字符. ?:表示任意单个字符. 记住上面这两个字符所表示的意思,后面还会在正则表达式里出现,但意义不同. 1.正则表达式:Regular Expression,REGEXP 由一类特殊字符及文本字符所编写的模式,其有些字符不表示字面意义,而是用于表示控制或通配的功能: 元字符分两类: 基本正则表

linux基础之grep命令

Linux基础之grep命令 grep命令是linux下的行过滤工具,参数繁多,功能比较强大,用起来比较方便,下面就将grep及其egrep分模块讲述其功能. 1.Grep:根据模式搜索文本,并将符合模式的文本行显示出来 2.Grep的语法:Grep  [option]   PATTERN  [file-] Pattern: 文本字符和正则表达是元字符组合而成匹配条件 3.grep的常用选项: -i: 不区分字符的大小写(只适用于单字符): -I:字符的大写: --color: 匹配的串用高亮颜

菜鸟的成长记录--linux正则表达式及grep

正则表达式 是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 元字符:不表示其字面意义,而用于额外功能性描述,下面是常用的元字符列表 符号 含义 . 表示匹配任意单个字符,例a.,匹配ab.ac.ad.ax * 表示它前面的字符可以出现任意次,例a*b,匹配aab.b.ab \? 表示它前面的字符可有可无,例a\?b,匹配a

深入理解Linux中的grep命令

介绍 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep [-acinv] [--color=auto] '查找字符串' filename 参数: -a :将binary文件以text文件的方式查找数据 -c :计算找到‘查找字符串'的次数 -i :忽略大小写的区别,即把大小写视为相同 -n :顺便输出行号

linux shell基础(四)正则表达式与grep命令(编辑中)

一.正则表达式之前学习find命令时,就已经接触过一些简单的正则,那么我们现在来学习一些复杂的正则.首先,我们还是来复习什么是正则表达式,看这个教程先,一定要多看几遍,至少知道正则大概长什么样子.(转载至https://deerchao.net/tutorials/regex/regex.htm )正则就是有规律的一串字符串,用来描述一个特定的内容,正则适合用来处理字符串,不太适合处理数学逻辑.学好正则对编写shell脚本有很大的好处,所有的shell脚本大部分都涉及到正则表达式.各种编程工具中

第十三天-linux正则表达式及重点命令

正则表达式: 简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号辅助,我们可以快速的过滤,替换某些特定的字符串. 运维工作中,会有大量的访问日志,错误日志.如何能快速的过滤出我们需要的内容,这就要靠正则表达式. awk,sed,grep(egrep)linux三剑客想要工作的更高效,那么一定离不开正则表达式的配合. 我们想要玩好三剑客,主要是awk,sed,grep.三剑客的正则表达式. 正则表达式实际就是一些特殊的字符,赋予了他特等的含义.1)^wo

Linux find、grep命令详细用法

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.find命令find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以指定

正则表达式2——grep命令

grep是Global search Regular Expression and Print out the line的简称. 1. grep命令基本用法 命令格式: grep [选项][模式][文件-] 选项 意义 -c 只输出匹配行的数量 -i 搜索时忽略大小写 -h 查询多文件时不显示文件名 -l 只列出符合匹配的文件名,而不列出具体匹配行 -n 列出所有匹配行,并显示行号 -s 不显示不存在或无匹配文本的错误信息 -v 显示不包含匹配文本的所有行 -w 匹配整词 -r 递归搜索,不仅搜