0606:多行删除d删除模式空间内容,导致读入新行D删除模式空间第一行(直到第一个被嵌入的换行符)重点:它不会读入新行,相反它返回到脚本的顶端,将这些指令应用于模式空间剩余的内容!P打印模式空间的第一行,用法见sed学习笔记-2的多行模式替换例:保留一个空行[root@localhost upload]# cat 1abcde[root@localhost upload]# cat 1.sed/^$/ {N/^\n$/D}[root@localhost upload]# sed -f 1.sed 1abcde保持空间:h复制模式空间内容到保持空间  覆盖H复制模式空间内容到保持空间  追加g复制保持空间内容到模式空间  覆盖G复制保持空间内容到模式空间  追加x交换两个空间的内容例1:[root@localhost upload]# cat 1aaaaaaaaaaabbbbbbbbbbbbbccccccccccccddddddddddddddeeeeeeeeeeeeeeffffffffffff[root@localhost upload]# cat 1.sed#本脚本中对于空行的操作一定要在脚本的顶部$ {    /^$/! {        H        s/.*//    }}/^$/! {Hd}/^$/ {xs/^\n/

/s/$/<\/p>/}[root@localhost upload]# sed -f 1.sed  1

aaaaaaaaaaabbbbbbbbbbbbbcccccccccccc

ddddddddddddddeeeeeeeeeeeeee

ffffffffffff

--------------------------------------------------------------------流程控制命令:b1、"b
<空格>
标签" 跳转到指定标签下的语句(冒号开头的标签)2、"b不代标签参数" 跳转到脚本结尾(不执行脚本剩下语句)t1、"t
<空格>
标签"如果上一个语句成功执行,则执行指定标签下的语句2、"t不代标签参数" 跳转到文件结尾(不执行脚本剩下语句)例:随便一个过程:begins/a/A//a/b begin/B/t endb:endD

-------------

n和N不打使执行权限回到顶部,而是只是单纯的读取下一行、追加下一行到当前的模式空间,从下一个命令接着处理。

2.txt

[root@centos-6 bak]# sed -f 2.sed -n 2.txtcccaaaaccccaaac

N

[root@centos-6 bak]# cat 2.sed#!/bin/sed -f/c/ {    s/a/A/g    :notfindpath    N    p}

n

[root@centos-6 bak]# sed -f 2.sed -n 2.txtaaaaaaac