【shell】正则表达式
当一个文件或命令输出中抽取或过滤文本时,可以使用正则表达式(RE),正则表达式是一些特殊或很不特殊的字符串模式的集合。
在Linux中grep、awk、sed均可解释正则
1.基本元字符集及其定义
| ^ | 只匹配行首 |
| $ | 只匹配行尾 |
| * | 一个单字符后紧跟*,匹配0个或多个此单字符 |
| [] | 匹配[]内字符。可以使一个单字符,也可以是字符序列。可以使用-代替[]内字符序列范围,如用[1-3]代替[123] |
| \ | 用来屏蔽一个元字符的特殊含义。\可以失去它应有的意义 |
| . | 匹配任意单字符 |
| pattern\{\n} | 用来匹配前面pattern出现次数。n为次数 |
| pattern\{n,\}m | 含义同上,但次数最少为n |
| pattern\{n,m\} | 含义同上,但次数在n到m之间 |
tips:特殊的匹配
ip地址的匹配:[root@localhost test]# grep '[0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}' file01.txt
2.详细案例解释说明
现在有file01.txt文件内容如下:
Rolling In the Deep -- Adele
滑向深处
9999999999999999
There's a fire starting in my heart,
我心中燃起了火焰
Reaching a fever pitch and it's bringing me out the dark
那温度驱走了黑暗
Finally, I can see you crystal clear.
我终于看得清你
Go ahead and sell me out and I'll lay your ship bare.
放弃自己的全部赤裸的留在你的心中
See how I leave, with every piece of you
我会一片一片把你剥离我的记忆
Don't underestimate the things that I will do.
不要以为我真的不会这么做
There's a fire starting in my heart,
心中燃起了火焰
1.^匹配行首
说明:匹配以Th开头的行
[root@localhost test]# grep ^Th file01.txt

2.$匹配行尾
说明:匹配以dark结尾的行
[root@localhost test]# grep dark$ file01.txt

3.*匹配0个或单个字符
说明:匹配you出现的行
[root@localhost test]# grep you* file01.txt 
3.一些其他的grep命令操作
3.1 搜索特定字符串"and"
n为行号
[root@localhost test]# grep -n 'and' file01.txt
3.2 搜寻不包含特定字符串"and"
[root@localhost test]# grep -vn 'and' file01.txt
3.3 搜索任意大小写"there"这个字符串
[root@localhost test]# grep -in 'there' file01.txt
3.4 利用括号[]来搜索集合字符
搜索fb与ia组合开头的单词
[root@localhost test]# grep -n '[fb][ia]re' file01.txt
3.5 显示行尾为点的行
[root@localhost test]# grep -n '\.$' file01.txt
3.6 显示第二行与第三行数据
[root@localhost test]# cat -An file01.txt |head -n 3|tail -n 2
3.7 显示空白行
[root@localhost test]# grep -n '^$' file01.txt
3.8 找出含数字的行
[root@localhost test]# grep -n '[0-9][0-9]*' file01.txt
【shell】正则表达式的更多相关文章
- linux shell 正则表达式(BREs,EREs,PREs)差异比较
linux shell 正则表达式(BREs,EREs,PREs)差异比较 则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符 串的单个字符串.在很多文本编辑器或其他工具里 ...
- linux shell 正则表达式(BREs,EREs,PREs)的比较
原文 : linux shell 正则表达式(BREs,EREs,PREs)差异比较 在使用 linux shell的实用程序,如awk,grep,sed等,正则表达式必不可少,他们的区别是什么 ...
- 文本处理三剑客与shell正则表达式
文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...
- shell(shell函数、shell正则表达式)
本章内容 shell函数 shell正则表达式 1.shell函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. 格式: funname () { CMD #函数体 ...
- Shell 正则表达式详解
Shell 正则表达式 什么是正则表达式? 正则表达式在每种语言中都会有,功能就是匹配符合你预期要求的字符串. 为什么要学正则表达式? 在企业工作中,我们每天做的linux运维工作中,时刻都会面对大量 ...
- 我们一起来学Shell - 正则表达式
文章目录 什么是正则表达式 正则表达式元字符 正则表达式应用举例 POSIX 方括号表达式 POSIX 字符集列表: 我们一起来学Shell - 初识shell 我们一起来学Shell - shell ...
- [Shell]正则表达式与通配符
----------------------------------------------------------------------------------------- 正则表达式与通配符: ...
- Python/Shell 正则表达式与运用
正则表达式用的地方是很多的.比如字符串处理过程中.最近遇到记录一下. 1. 比如在shell中 #!/bin/bash str="date:2017-11-28 os:centos blac ...
- Shell正则表达式和文本处理工具
作业一:整理正则表达式博客 一.什么是正则 正则就是用一些具有特殊含义的符号组合而成(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 通配符是由shell解释得. ...
- shell 正则表达式与文件名匹配
1) . : 匹配任意单ASCII 字符,可以为字母,或为数字. 2) 举例: ..XC..匹配deXC1t.23XCdf 等,.w..w..w.匹配rwxrw-rw- 行首以^匹配字符串或字符序列 ...
随机推荐
- Hibernate中的Session缓存问题
1. Session 缓存: 1) . 在 Session 接口的实现中包括一系列的 Java 集合 , 这些 Java 集合构成了 Session 缓存 . 它用于存放 Sessi ...
- 如何在windows server 2008上配置NLB群集
参考:http://zlwdouhao.blog.51cto.com/731028/781828 前些天写了一篇关于NLB群集模式多播和单播的简单介绍.那么下面我们一起来探讨一下,如何在windows ...
- C#中的IDisposable模式
当谈到垃圾回收,在C#中,托管资源的垃圾回收是通过CLR的Garbage Collection来实现的,Garbage Collection会调用堆栈上对象的析构函数完成对象的释放工作:而对于一些非托 ...
- intrawebIW当作REST 服务端
intraweb15 该版本支持HTTPS.SYS通信. IW当作REST 服务端使用: procedure TIWServerController.IWServerControllerBaseExe ...
- Unity中一键创建常用文件夹
Unity中一键创建常用文件夹 说明 项目测试版本Unity5.3. 这个一个小工具:功能非常简单,就是一键给新建工程添加所有文件夹.到此结束. 但是具体咋操作呢? 与把大象装进冰箱一样,三步,下载代 ...
- SHA加密算法工具类
1.利用Apache的工具类实现加密: maven: <dependency> <groupId>commons-codec</groupId> <artif ...
- Redis:ERR operation not permitted
Redis服务开启之后: D:\Redis\redis>redis-server.exe redis.conf 那么另外开一个命令窗口 D:\Redis\redis>redis-cli.e ...
- 多个程序对sql server中的表进行查询和插入操作导致死锁
最近在做一个项目,是要用多个程序对sql server中的相同的数据库进行操作(查询和插入),所以在开始的时候常会出现死锁问题,后来在网上进行了咨询,发现了一些解决方法,留作大家参考: 并发去操纵一张 ...
- CURL库在C++程序中的运用浅析
最近由于要做一个爬虫项目,要对很多网站进行爬取,所以一直都在看这方面的文章.在翻阅了很多资料后,下载了一个curl库,着实对项目有了很大的帮助. 一.LibCurl基本编程框架 二.一些基本的函数 三 ...
- ransom-note
https://leetcode.com/problems/ransom-note/ public class Solution { public boolean canConstruct(Strin ...