说明:蓝色=命令名称
浅绿=命令参数
浅蓝=选项
紫色=目录
系统环境:CentOS 5.8 x86_64
内容如下:
650) this.width=650;” border=0>
sed语句:sed ‘/./{H;$!d};x;/aa/d’ 1
结果如图:
650) this.width=650;” border=0>
解析:
650) this.width=650;” border=0>
第一行不是空,被/./匹配,放入保留空间,执行d,在读取下一行进入循环,知道读取的下一行不被/./匹配,不执行d,循环结束。此时保留空间内的内容为:
null\naa\nbb\ncc\n
继续读取下一行进行第二个循环,和第一次一样不再详细解释。
第三次循环关键在 $!d 最后一行没有执行 d 表示循环结束,执行了一侧完整的循环。若没有 $!d 则最后执行 d 然后下一行为空,无法读取,循环没有顺利完成,所以最后的一次循环不会被真正的保留到保留空间中,最后的结果如图:
650) this.width=650;” border=0>