正则表达式基础

1.正则表达式 regular expression
一个正则表达式通常被称为一个模式(pattern),为来描述或者匹配一系列符合某个句法规则的字符串。

2.基本语法

选择:
| “boy|girl”可以匹配boy或girl

数量限定:

  • 表示前面的字符必须出现至少一次(1次或多次),如“goo+gle”可以匹配“gooole”,“goooole”
    ? 表示前面的字符最多出现一次(0次或1次),如“colou?r”可以匹配“color”、“colour”
  • 表示前面的字符可以不出现、或者出现一次或者出现多次(0次、或1次、或多次),如“0*42”可以匹配42、042、0042、00042等

范围和优先级:
( ) 用来定义定义模式字符串的范围和优先级。
如gr(a|e)y 等级与gray|grey
(grand)?father 匹配father和grandfather

部分语法:
  将系一个字符标记为一个特殊字符或一个原义字符。如“n”匹配“n”,“\n”匹配换行符,“\”匹配,(匹配(

^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
{n} n是一个非负整数,匹配确定的n次
{n,} n是一个非负整数,至少匹配n次。{1,}等价于+,{0,}等价于*
{n,m} n,m均为非负整数,n<m,最少匹配n次,最多匹配m次

  • 匹配前面的子表达式零次或多次
  • 匹配前面的子表达式一次或多次
    ? 匹配前面的子表达式零次或一次
    ? 当?紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面,匹配模式是非贪婪的,非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式尽可能多的匹配所搜索的字符串。如“00000”,“0+?”匹配“0”,“0+”匹配所有0
    (patter)匹配pattern并获取之一匹配的子字符串
    x|y 匹配x或y
    [xyz] 字符集合,匹配所包含的任意一个字符。其中特殊字符仅有反斜线\保持特殊含义,用于转义字符。其它特殊字符如星号、加号、各种括号等均作为普通字符。脱字符^如果出现在首位则表示负值字符集合;如果出现在字符串中间就仅作为普通字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符

[^xyz] 排除型字符集合。匹配未列出的任意字符。
[a-z] 字符范围,匹配制定范围内的任意字符
[^a-z] 排除型字符范围。匹配任何不在制定范围内的任意字符

3.优先级
转义符、括号中括号、限定符、定位点和序列(^,$,\任何元字符)、选择

4.grep模式匹配命令
grep命令用于打印输出文本中匹配的模式串,使用正则表达式作为匹配条件。
grep 参数 模式 file
-b 将二进制文件作为文本来进行匹配
-c 统计与模式匹配的数目
-i 忽略大小写
-n 显示匹配文本所在行的行号
-v 反选,输出不匹配行的内容
-r 递归匹配查找
-A n after,除列出匹配行外,还列出后面的n行
-B n before,除列出匹配行外,还列出前面的n行
--color=auto 将输出的匹配项设置为自动颜色显示

grep支持三种正则表达式引擎
-E ERE,扩展正则表达式
-G BRE,基本正则表达式
-P PCRE ,perl正则表达式

5.使用正则表达式:
基本正则表达式BRE

...位置:查找/etc/group文件中以“shiyanlou”开头的行
grep ‘shiyanlou’/etc/group
grep '^shiyanlou' /etc/group

...数量:

...选择:

完整的特殊符号及说明:

6.使用扩展正则表达式ERE
grep -E 或者用egrep

...数量:

...选择:

其中.有特殊含义,需要转义

7.sed流编辑器
sed工具用于过滤和转换文本的流编辑器
sed 参数 执行命令 file
-n 安静模式,只打印受影响的行,默认打印输入数据的全部内容。
-e 用于脚本中添加多个执行命令一次执行,在命令行中执行多个命令通常不需要加盖参数
-f filename 执行指定filename文件中的命令
-r 使用扩展正则表达式,默认为标准正则表达式
-i 将直接修改输入文件内容,而不是打印到标准输出设备

sed编辑器的执行命令--略

8.awk文本处理工具--略

转载于:https://www.cnblogs.com/xflyer/p/10422174.html

linux学习笔记(十二)相关推荐

  1. linux学习笔记十二:yum常用命令

    yum search xxx      查找xxx软件 yum info xxx查看xxx软件的信息 yum list   列出哪些软件已安装:哪些软件未安装. yum listupdates     ...

  2. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  3. Linux学习笔记(二十三) -- QT的安装和卸载

    1.QT简介 Qt 是一个跨平台C++图形用户界面应用程序开发框架.它可以用来开发GUI程序和非GUI程序(比如控制台工具和服务器). 2.QT安装 使用如下命令: sudo apt-get inst ...

  4. Linux学习笔记(二)|常用命令

    Linux学习笔记(二)常用命令 1.文件处理命令 1.1命令格式与目录处理 -ls 功能描述:显示目录文件 原意:list 所在路径:/bin/ls 语法: ls-a 显示所有文件,包括隐藏文件 l ...

  5. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  6. ROS学习笔记十二:使用roswtf

    ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...

  7. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

  8. OpenCV学习笔记(十二)——图像分割与提取

    在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...

  9. Linux学习笔记(二)——文件与磁盘系统

    Linux学习笔记(二)--文件与磁盘系统 文件操作 ls [选项][目录名]-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)- ...

  10. Linux学习笔记(二)(Vim文本编辑器 权限管理(用户,用户组) 系统相关(磁盘,进程))

    Linux学习笔记(二) 5.账号管理 概述 一.用户账号管理 概述 1. 添加账号 :useradd(`useradd 选项 用户名`) 2. 删除帐号(`userdel 选项 用户名`) 3. 修 ...

最新文章

  1. 设计模式之代理模式(Proxy)摘录
  2. Java程序员需要熟悉的库
  3. Nature:研究人员设计稳定器来改善脑机接口
  4. bzoj3714:[PA2014]Kuglarz
  5. c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解
  6. tp3.2php开启事务,ThinkPHP 3.2.2实现事务操作的方法
  7. OSPF第十章:OSPF 一
  8. 一文看懂async和“await”关键词是如何简化了C#中多线程的开发过程
  9. 索要 2.3 亿元赎金!富士康遭遇黑客攻击
  10. linux查看和终止进程,linux 查看并终止进程
  11. CCF201609-1 最大波动(100分)【序列处理】
  12. DataTable克隆行
  13. 转写给XJTU计算机系大一大二的童鞋
  14. 金山卫士开源软件之旅(九) KUI高级界面(列表控件、树控件例子、超文本、网页控件)
  15. 读《哪有没时间这回事》有感
  16. (干货)备战2021年软考中级网络工程师-04知识产权与标准化
  17. 2022年新一代最强开源UI自动化测试神器 ——Playwright(三)
  18. TIME_WAIT和CLOSE_WAIT状态区别
  19. NCTF Crypto WriteUp
  20. python编译型语言和解释型语言

热门文章

  1. 工作分解结构(Work Breakdown Structure,简称WBS)
  2. 解决out.print()爆红问题
  3. 关于清理系统lj.bat的问题
  4. vite Unrestricted file system access to
  5. PV操作(操作系统)
  6. 1.Spring注解01、组件注册-@Configuration@Bean给容器中注册组件
  7. MFCC、FBank以及语谱图特征提取
  8. 语音特征:mfcc、fbank和语谱图概述
  9. 标注数据类型及对应的监督学习方案
  10. [职场人生]求职信常用语句 Useful wording in application letters