2019-03-19Day14 课后笔记 正则表达式与sed命令

正则表达式:

1、 什么是正则表达式?(作用和特殊字符一样)

正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。

2、为什么要用正则表达式?

提高效率,快速获取到想要的内容

3、 在哪使用?

三剑客命令grep(egrep)、sed、awk(以行为单位处理)

4、怎样使用?


5、Linux三剑客的正则表达式的特点

a:为处理大量文本及字符串而定义的一套规则和方法

b:工作时以行为单位进行,即一次处理一行

c:通过正则表达式可以将复杂的处理任务化繁为简,提高操作Linux的效率

d:仅被三剑客(grep/egrep、sed、awk)命令支持,其他命令无法使用

6、易混淆事项 

a:应用正则表达式的就是Linux三剑客,普通命令正常情况下无法使用正则表达式

b:正则表达式在Linux中是通过三剑客命令在文件(或数据流)中过滤内容的;通配符是大部分普通命令都支持的,它是用来查找文件或目录的

7、环境准备

1)、调整字符集(export LC_ALL=C)

2)、

8、 正则表达式的分类:

a:基本正则表达式(BRE,basic regular expression)——使用命令grep

b:扩展正则表达式(ERE,extended regular expression)——使用命令egrep/grep-E

Linux正则表达式

1、基本正则

1):^尖角号  以……开头  ^oldboy    以oldboy开头

2):$美元符    以……结尾   oldboy $    以oldboy结尾

3):^$   空行

4):  .    匹配任意一个切只有一个字符,和通配符?一样

5):\   让有意思的字符脱掉马甲 还原本义

6):*   重复前面字符0次或多次

7):.*   表示所有

8):      ^.*     组合符,匹配以任意多个字符开头的内容

9):.*$     以任意0个或多个字符结尾

10):[abc]匹配[ ]集合内的任意一个字符a或b或c,[abc]相当于[a-c]

11):[^abc]匹配不包含^后的任意字符a或b或c

2、扩展正则

1):+   匹配前一个字符一次或一次以上

2):[:/]+   匹配括号内:或/字符 一次或一次以上

3):?  匹配前一个字符0次或1次

4):|   或者 同时过滤多个字符串

5):a{n,m}  匹配前一个字符最少n次,最多m次

6):a{n,}   匹配前一个字符最少n次

7):a{n}  匹配前一个字符正好n次

8):a{,m} 匹配前一个字符最多m次

9):()分组过滤杯括起来的东西表示一个整体

10):\n 引用前面括号里的内容

3、特殊中括号

4、元字符表达式

1):\b  匹配单词边界(类似grep -w)*****

2):\d 匹配单个数字字符(需用grep -P)


sed命令

1、sed简称为流编辑器

2、sed是用来操作、过滤和转换文本的工具。

3、语法格式

sed   [选项]    [sed内置命令字符]    [输入文件]

3、参数

-n 取消命令的默认输出

-i 直接修改文件内容,而不是输出到终端


4、内置命令字符说明

 s    替换

g       全局    global

p 打印print

d 删除delete


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 行前或行后插入 sed 'p;s/^.*$/--------/' file awk '{print $0;prin...
    不排版阅读 542评论 0 0
  • 说明:本篇文章来自老男孩,这里只做备份记录 功能说明 Sed是Stream Editor(流编辑器)缩写,是操作、...
    think_lonely阅读 727评论 0 2
  • sed与awk实例 文本间隔 在每一行后面增加一空行 将原来的所有空行删除并在每一行后面增加一空行。这样在输出的文...
    stuha阅读 1,920评论 0 21
  • 在地下宗教猖獗的乡里,从小一起长大的姐姐被嫁与神汉为妻。诗意叙,是难以具象的疼痛 这是全民故事计划的第26个故事 ...
    全民故事计划阅读 1,101评论 7 19
  • 自动变量,寄存器变量,易失变量 volatile setjmp 和 longjmp函数 易失变量容易被改变 所以每...
    寒江北阅读 76评论 0 0