day 14 awk和sed

Day14


作者:翟玉龙

归档:课堂笔记

2019/03/19

快捷键:

Ctrl  + 1    标题1

Ctrl  + 2    标题2

Ctrl  + 3    标题3

Ctrl  + 4    实例

Ctrl  + 5    程序代码

Ctrl  + 6    正文

格式说明:

蓝色字体:注释

黄色背景:重要

绿色背景:注意

老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

学无止境,老男孩教育成就你人生的起点!

联系方式:

网站运维QQ交流群:

Linux 385168604架构师390642196

Python 29215534大数据421358633

官方网站:

http://www.oldboyedu.com 

目录

学无止境,老男孩教育成就你人生的起点!... 1

第1章 正则表达式... 1

1.1 概念... 1

1.2 特点... 1

1.2.1 正则表达式分类... 1

1.3 预定义中特殊中括号... 3

1.4 元字符表达式... 4

第2章 三剑客 之 sed. 4






[if !supportLists]第1章 [endif]正则表达式

[if !supportLists]1.1[endif]   概念

1.什么是正则表达式

作用和特殊字符一样

它是为了处理大量的字符串及文本定义的一套规则和方法

假设”@”代表”I am”,“!”代表“oldboy”

则执行echo“@!”输出结果就是I am oldboy

2.为什么用提高效率

3.在哪用。它适用于三剑客命令grep(egrep)sed  awk,,不适合普通命令

4.怎样用。实践

[if !supportLists]1.2 [endif]特点


三剑客的特点

[if !supportLists]1.     [endif]为处理大量文本和字符串而定义的一套规则和方法

[if !supportLists]2.     [endif]其工作时以行为单位进行,即一次处理一行

[if !supportLists]3.     [endif]通过正则表达式可以将复杂的处理任务化繁为简,提高操作Linux的效率

[if !supportLists]4.     [endif]仅被三剑客命令支持,其他命令无法使用


易混淆的事项

[if !supportLists]1.     [endif]和通配符的区别

[if !supportLists]2.     [endif]和开发的正则是不一样的,开发一般是perl兼容正则表达式。JAVA,php等

[if !supportLists]3.     [endif]Linux三剑客正则表达式************

调整字符集:

export LC_ALL=C

[if !supportLists]1.2.1 [endif]正则表达式分类

[if !supportLists]1.     [endif]BRE基本正则表达式类似于grep

[if !supportLists]2.     [endif]ERE扩展正则表达式类似于egrep

[if !supportLists]1.3[endif]课堂问题

?0和0?区别

第一个代表自身是点,代表任意一个字符

第二个则是匹配?前的一个字符,两个含义不同。

问题2

e*s*和s?s?

e*标识 空e ee

eeeeeeeeeeeeeeee

s*表示空s s  s s s ss s s s s s sss  s

e*s*表示 空  es   e     s     ess  ees


e?s?表示  空   e  s    es 

e?表示空    e

s? 表示空s


e+  表示e e e eee  ee e e e ee

e*表示空 e ee eee

e?表示空e

[if !vml]

[endif]


[if !vml]

[endif]

[if !supportLists]1.4 [endif]预定义中特殊中括号

[if !vml]

[endif]

[if !supportLists]1.5 [endif]元字符表达式

[if !vml]

[endif]


[if !supportLists]第2章 [endif]三剑客之 sed

Linux三剑客

 awk sed grep

sed:

sed ‘/oldboy/d’ oldgirl.txt 不修改原文件知识显示的时候删除该内容

环境:

[root@oldboyedu ~/test]# cat oldgirl.txt

I am oldboy teacher!

I like badminton ball ,billiard ball and chinese chess!

our site is[if !vml]

[endif]http://www.oldboyedu.com

my qq num is 49000448.

问题1:输出oldboy.txt的第2-3行内容※。

1,sed -n '2,3p' oldgirl  -n取消默认输出   ,p打印

head -3 oldgirl |tail -2问题2:过滤出含有oldboy字符串的行※。

2,sed -n '/oldboy/p' oldgirl问题3:删除含有oldboy字符串的行※。

3,sed '/oldboy/d' oldgirl

问题4:将文件中的oldboy字符串全部替换为oldgirl※。

4,sed 's/oldboy/oldgirl/g' oldgirl  替换问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741。

5,sed -e 's/oldboy/oldgirl/g' oldgirl -e 's/49000448/31333741/g' oldgirl

-e 再处理

你可能感兴趣的:(day 14 awk和sed)