linux-正则表达式与grep命令

一、grep命令

命令

作用

-a

将二进制文件以text文件的方式搜寻数据

-c

计算找到符合搜索内容的行数

-i

忽略大小写

-n

顺便输出行号

-v

反向选择,即找没有搜内容的行

-E

开启扩展的正则表达式

-w

被匹配的文本只能是单词,而不是单词中的某一部分;精准匹配

--color

将匹配到的内容以颜色高亮显示

-A n

显示匹配到的字符串所在的行及其后n行,after

-B n

显示匹配到的字符串所在的行及其前n行,before

-C n

显示匹配到的字符串所在的行及其前后各n行,context

-r

以递归的方式查找指定目录及其子目录中符合条件的文件

grep 可以使用 --color=auto 来将关键字部分使用颜色显示,可以用 alias 设置别名写入 shell 配置文件中。我用的shell 是 zsh,所以在 ~/.zshrc 内加上 alias grep='grep --color=auto' 再以 source ~/.bashrc 来立即生效即可

vim ~/.zshrc

alias grep='grep --color=auto'

source ~/.zshrc

image-20210513163034403

准备文件

image-20210518110629312

匹配 ab

grep 'ab' 1.txt

image-20210518111350932

匹配 ab 同时输出 ab 所在的行号

grep -n 'ab' 1.txt

image-20210518111701176

统计含有 ab 的行数

grep -c 'ab' 1.txt

image-20210518111739680

匹配非 ab,即反选

grep -vn 'ab' 1.txt

image-20210518232337324

匹配时忽略大小写

grep -i 'ab' 1.txt

image-20210518232419385

精准匹配被字符分割的字母单词,而不是其中的一部分

grep -w 'cc' 1.txt

image-20210518232651235

二、正则表达式

1、基础正则表达式(Basic Regular Expression)

符号

作用

*

前一个字符匹配 0 次或任意多次

.

匹配除换行符外的任意一个字符

^

匹配行首。

$

匹配行尾。

[]

匹配中括号中指定的任意一个字符,而且只匹配一个字符。例如.[aoeiu]匹配任意一个元音字母, [0-9] 匹配任意一位数字,[a-z][0-9] 匹配由小写字母和一位数字构成的两位字符

[^]

匹配除中括号中的字符以外的任意一个字符。例如,[^0-9] 匹配任意一位非数字字符,[^a-z] 匹配任意一位非小写字母

\

转义符,用于取消特殊符号的含义

^$

匹配空行;^$匹配空行,不匹配空格

.*

匹配任意字符

^.*

组合符匹配任意多个字符开头的内容

.*$

组合符,匹配任意多个字符结尾的内容

匹配 0 到多个 a 后接 b

grep -n 'a*b' 1.txt

image-20210520085326823

匹配行首为 aab

grep -n '^aab' 1.txt

image-20210520085831889

匹配行尾为 bcc

grep -n 'bcc$' 1.txt

image-20210520090016963

匹配 Ab 或者 ab

grep -n '[Aa]b' 1.txt

image-20210520090912769

匹配非 Aa

grep -n '[^Aa]' 1.txt

image-20210520091154058

匹配 c* 。*匹配前面的字符 0 或多次,可以用转义符 \ 取消 * 的含义

grep -n 'c*' 1.txt

grep -n 'c\*' 1.txt

image-20210520091836590

匹配空行

grep -n '^$' 1.txt

image-20210520092004756

2、扩展正则表达式(Extended Regular Expression)

符号

作用

+

匹配前一个字符1次或多次

?

匹配前一个字符0次或1次

|

表示或者,同时过滤多个字符

()

分组过滤,被括起来的内容表示一个整体

{n,m}

匹配前一个字符最少n次,最多m次

{n,}

匹配前一个字符最少n次

{n}

匹配前一个字符正好n次

{,m}

匹配前一个字符最多m次

grep 用扩展正则表达式的时候需要加上 -E 开启

b+ 表示匹配 b 一次或者多次,与 b* 相比,b+ 最少也要匹配1次

grep -n 'b*' 1.txt

grep -En 'b+' 1.txt

image-20210520092715010

匹配 ab 或者 Ab 或者 bc

grep -En 'ab|Ab|bc' 1.txt

image-20210520094223877

匹配 aab 或者 AAb

grep -En '(aa|AA)b' 1.txt

image-20210520095730453

匹配 a 至少 2 次,至多 3 次

grep -En 'a{2,3}' 1.txt

image-20210520095918161

匹配 a 至少两次

grep -En 'a{2,}' 1.txt

image-20210520100051887

匹配 ab 至多一次

grep -En '(ab){,1}' 1.txt

image-20210520100253089

匹配 ab 正好一次

grep -En '(ab){1}' 1.txt

image-20210520100402223

linux grep正则表达式,linux-正则表达式与grep命令相关推荐

  1. Linux中正则表达式与文件格式化处理命令(awk/grep/sed)

    一.正则表达式 1.1国际字符模式匹配或匹配模式的类名 [:alnum:] : 0-9,A-Z,a-z [:alpha:] : A-Z,a-z [:upper:] : A-Z [:lower:] : ...

  2. linux grep正则表达式,grep中的正则表达式

    导读 grep是Linux中用于处理文件的工具之一.grep搜索输入文件,查找与正则表达式匹配的行,并将每个匹配的行标准输出. 正则表达式是匹配一组字符串的模式.模式由操作符.构造文字字符和具有特殊意 ...

  3. Linux三剑客(awk、sed、grep) 和 正则表达式

    本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正. 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式,正则表达式--事先定义好的一些特定字符.及这些特定字符的组 ...

  4. linux查看ip地址特定信息,grep正则表达式实现查找某个特定的IP地址

    下面会举几个在grep命令中使用正则表达式从一个文件中匹配到特定的IP地址.下面的正则表达式将会匹配IPV4的地址. 正则表达式匹配IP地址: 使用下面的正则表达式来匹配IPV4的地址,先来匹配从0. ...

  5. linux基础--grep以及模式正则表达式

    grep [options] PATTERN [FILE....] -i:不区分大小写 --color:高亮显示匹配字符 -v:显示没有被匹配到的行 -o:只显示被匹配到的字符串 -E:使用扩展正则表 ...

  6. Linux Shell脚本编程--grep命令

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

  7. grep递归查找头文件_Grep命令教程–如何使用递归查找在Linux和Unix中搜索文件

    grep递归查找头文件 grep stands for Globally Search For Regular Expression and Print out. It is a command li ...

  8. linux 删除所有a字符串,linux文本处理三剑客(grep、sed、akw)命令选项整理

    摘要:Linux中最重要的三个命令:awk,sed,grep,在业界被称为"三剑客". 1.grep和egrep(过滤器) grep: grep [选项][匹配条件][file1 ...

  9. linux更改权限报io错误,用户命令、权限、IO重定向、grep

    /etc/passwd: 用户名:密码:UID:GID:注释:家目录:默认SHELL /etc/group: 组名:密码:GID:以此组为其附加组的用户列表 /etc/shadow: 用户名:密码:最 ...

  10. grep 命令系列:grep 中的正则表达式

    grep 命令系列:grep 中的正则表达式 在 Linux .类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式e ...

最新文章

  1. 使用代理网络配置maven,显示导入失败的原因
  2. [BZOJ 3629][JLOI2014]聪明的燕姿
  3. mysql主从从配置详解_MySQL主从配置详解
  4. java jsp 图片上传_jsp 图片上传代码
  5. 从业余挖洞到微软漏洞研究员,我的遗憾、惊喜和建议
  6. JSON时间转换格式化
  7. 读取xlsx,根据模板图片批量添加文字生成相关图片,如证书,奖状,名片等
  8. Center OS 7
  9. 云安全技术——PGP加密技术
  10. android 跑马灯带图片,Android自定义跑马灯效果(适合任意布局)
  11. python入门学习——6种方法求n的阶乘(8种写法)
  12. IEEE 802.1AS-2011 第七章 桥接局域网的时间同步模型
  13. excel数据个数统计问题
  14. php图片点击查看大图,jQuery点击小图看大图,大图查看内容详情所有图片
  15. 网易2019游戏研发工程师笔试题
  16. iReport学习一:中文字体显示
  17. NanoPi NEO2使用
  18. VS2010 MFC中对Access数据库基本操作
  19. html生成海报图片
  20. iPad 使用感想 - 初体验

热门文章

  1. 1. SOAP 简介
  2. 5. CSS 类选择器
  3. java访问rabbitMQ 一
  4. JSP中报错only a type can be imported XXX resolves to package
  5. 动态迁移到另一点出现电源关闭的原因及解决方法
  6. iPads和iPhones的Media Queries(转载)
  7. PowerDesigner中Table视图同时显示Code和Name
  8. Strategy模式C++实现
  9. JavaScript实现监听移动端上下左右滑动事件
  10. ElasticSearch常用API操作示例