一、正则和grep

正则表达式的实现分成了两类: 基本正则表达式(BRE)和扩展的正则表达式(ERE)。

BRE 和 ERE 之间有什么区别呢?这是关于元字符的问题。BRE 可以辨别以下元字符:

^ $ . [ ] *

其它的所有字符被认为是文本字符。ERE 添加了以下元字符(以及与其相关的功能):

( ) { } ? + |

在 BRE 中,字符“(”,“)”,“{”,和 “}”用反斜杠转义后,被看作是元字符, 相反在 ERE 中,在任意元字符之前加上反斜杠会导致其被看作是一个文本字符。


grep默认使用BRE,egrep支持ERE, GNU 版本的 grep 程序在使用了-E 选项之后也支持扩展的正则表达式。

基础正则表达式汇总:

扩展正则表达式汇总:

{ 和 } 元字符都被用来表达要求匹配的最小和最大数目。它们可以通过四种方法来指定:

『正规表示法的特殊字节』与一般在命令列输入命令的『万用字节』并不相同, 例如,在万用字节当中的 * 代表的是『 0 ~ 无限多个字节』的意思,但是在正规表示法当中, * 则是『重复 0 到无穷多个的前一个 RE 字符』的意思,使用的意义并不相同。

二、sed

sed 本身也是一个管线命令,可以分析 standard input ,而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。

1、以行为单位的新增/删除功能

sed 后面接的动作,请务必以 ' ' 两个单引号括住。

如果只要删除第 2 行,可以使用『 nl /etc/passwd | sed '2d' 』来达成, 若是要删除第 3 到最后一行,则是『 nl /etc/passwd | sed '3,$d' 』,『 $ 』代表最后一行。

如果是要在第二行前呢?『 nl /etc/passwd | sed '2i drink tea' 』

一次性添加多行,每一行之间都必须要以反斜线『 \ 』来进行新行的添加。

2、以行为单位的取代与显示功能

-n 为安静模式,只显示出被sed处理的行。

3、部分数据的搜寻并取代的功能

4、直接修改文件内容(危险动作)

Linux-正则、grep、sed学习笔记的更多相关文章

  1. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

  2. Linux三剑客grep/sed/awk

    grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...

  3. linux三剑客grep|sed|awk实践

    最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk

  4. linux命令sed学习笔记

    sed其实就是两个主要的知识点,那就是“怎么选择”和“怎么操作”!

  5. 《鸟哥的Linux私房菜》学习笔记(7)——grep及正则表达式

    一.grep命令 grep:根据模式搜索文本,并将符合模式的文本行显示出来 模式:由文本字符和正则表达式的元字符组合成的匹配条件 命令格式:grep [options] [file...] [root ...

  6. Linux中的命令学习笔记

    Linux挂载Winodws共享文件夹 mount -t cifs -o username=xxx,password=xxxx //1.1.1.1/test /win 产生一个5位随机字符串 | md ...

  7. 慕课网-Linux达人养成计划学习笔记

    mkdir -p [目录]创建目录-p 递归创建ls 查看当前目录下的文件和目录等其他文件 cd [目录]命令英文愿意:change directory切换所在目录简化操作cd ~ 进入当前用户的家目 ...

  8. 《鸟哥的Linux私房菜》学习笔记(2)——Bash特性

    一.shell的基本概念:                               shell 意思是外壳,它是离用户最近的程序.shell提供用户操作系统的接口,我们通过shell将输入的命令与 ...

  9. 《鸟哥的Linux私房菜》学习笔记(1)——文件与目录

    在Linux中,任何设备都是文件,不仅如此,连数据通信的接口也有专门的文件负责.可以说,一切皆文件,目录也是一种文件,是路径映射.因此,文件系统是Linux的基础. 一.文件与目录管理命令 1.ls( ...

随机推荐

  1. C语言笔记 07_枚举&指针

    emum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读. 枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,--}; 举个例子,比如:一星期有 7 天,如果 ...

  2. JS---BOM---定时器

    定时器 参数1:函数 参数2:时间---毫秒---1000毫秒--1秒 执行过程: 页面加载完毕后, 过了1秒, 执行一次函数的代码, 又过了1秒再执行函数..... 返回值就是定时器的id值   v ...

  3. Promise代码详解(show you the code)

    认识异步函数 同步函数: const sum1 =(a,b)=>{ return a+b } console.log('AAA'); console.log(sum(5,6)); conosle ...

  4. 秒杀系统(一)----环境搭建及集成Mybatis、Redis

    1.1 环境搭建--pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=& ...

  5. jQuery实现类似Chrome控制台可拖拽改变宽度的样式

    最近项目进程紧张,没法再愉快的网上冲浪了 因为项目需要实现一个页面上可拖拽改变div宽度的功能,类似效果如Chrome的右侧调试台样式: 大概思路为: 1.使用mousemove()方法,将鼠标的位置 ...

  6. 技术分享预告丨k3s在边缘计算中的应用实践

    技术分享是在[Rancher官方微信技术交流群]里以图文直播+QA实时互动的方式,邀请国内已落地经验的公司或团队负责人分享生产落地的最佳实践.记得添加微信小助手(微信号:rancher2)入群,实时参 ...

  7. JDK新特性关于流操作部分

    // array 工具类 可以用来快捷的将数组转化为list List<String> strings = Arrays.asList("zhongguo", &quo ...

  8. 初步了解Node.js,学做简单的留言本案例

    在还没有正式的学Node.js的时候, 你们认为Node.js 对于前端来说是什么呢? 会认为Node.js 是框架? 认为这是类似Jquery的一个快速.简洁的JavaScript框架? 反正我自己 ...

  9. Abusing SUDO Advance for Linux Privilege Escalation

    Index What is SUDO? Scenario. Sudoer FIle Syntax. Exploiting SUDO zip tar strace tcpdump nmap scp ex ...

  10. Android极致优化

    1.SVG 可缩放矢量图,svg不会跟位图一样因为缩放使图片质量下降,有点在于节约空间与内存,常用语简单的小图标,由xml定义的,根节点为<svg>,在android中通过vector实现 ...