【吃饭的家伙】01-老男孩教育-三剑客-sed执行流程

运维学习交流群-点我加群:598972270

一. 简易流程

1.读取文件(从文件或管道)的第1行
2.读取到sed使用的内存区域中(模式空间)
3.进行判断这一行是否是我要的

1.如果是则则执行对应的命令(p d c a i s )
2.如果不是则读取下一行(注如果没加上-n sed会默认显示这行内容(模式空间内容))

老男孩教育-sed命令执行过程.jpg

如图

二.详细执行过程

详细过程一定要看官方的说明:info sed

`sed' maintains two data buffers: the active pattern space, and the
auxiliary hold space. Both are initially empty.

sed命令包含两个用来存放数据的内存区域(两个buffer区域):

pattern space 模式空间
hold sapce 保持空间
两个空间默认都是空的

`sed' operates by performing the following cycle on each line of
input:

sed命令的执行过程(一个循环过程)如下所示:

first, `sed' reads one line from the input stream, removes any
trailing newline, and places it in the pattern space.

第1步,sed从输入(文件或管道)中读取1行,删除每一行的回车符号然后存放在模式空间(pattern space)中。

Then commands are executed; each command can have an address associated to it:addresses are a kind of condition code, and a command is only executed if the condition is verified before the command is to be executed.

第2步,开始执行对应的命令,每个命令前面可以有一个条件(地址),只有满足条件的时候才会执行对应的命令(p d s c a i等等).

When the end of the script is reached, unless the `-n' option is in
use, the contents of pattern space are printed out to the output
stream, adding back the trailing newline if it was removed.(1) Then the
next cycle starts for the next input line.

第3步,当命令执行完成(这里命令指的是sed内部的p d s c a i 等等),如果没有-n参数(取消sed命令默认输出)则sed会把当前模式空间的内容显示出来然后再加上1个回车(第1步被删除的).然后开始读取下一行,进行下一个循环.

Unless special commands (like D') are used, the pattern space is deleted between two cycles. The hold space, on the other hand, keeps its data between cycles (see commandsh', H',x', g',G' to move
data between both buffers).

补充说明:

模式空间的内容会在每个循环结束后清空(除非加上D)。
保持空间的内容会在每次循环之间保留不被清空 (通过 h H x g G 移动保持空间和模式空间的数据)

(1) Actually, if sed' prints a line without the terminating newline, it will nevertheless print the missing newline as soon as more text is sent to the same output stream, which gives the "least expected surprise" even though it does not make commands like `sed -n p' exactly identical to cat'.

实际上,sed如果显示没有回车的行,他会在你多次显示到相同输出的时候替你加上缺少的回车。这个特点sed -n p 和cat并不完全相同.
这算是极特殊用法了,了解即可.

[root@oldboyedu-show01 ~]# cat old.txt   #这个文件就没有回车
oldboy[root@oldboyedu-show01 ~]# 

[root@oldboyedu-show01 ~]# sed -n p  old.txt   #通过sed显示的时候 没有显示每行的结尾
oldboy[root@oldboyedu-show01 ~]# 
 
[root@oldboyedu-show01 ~]# sed -n p  old.txt old.txt old.txt   #多次输出的时候sed会自动加上 回车
oldboy
oldboy
oldboy[root@oldboyedu-show01 ~]# 

[root@oldboyedu-show01 ~]# cat old.txt old.txt old.txt  #同样输出到相同的地方(屏幕) cat不会自动加上回车
oldboyoldboyoldboy[root@oldboyedu-show01 ~]# 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352