红联Linux门户
Linux帮助

Linux命令:sed d循环

发布时间:2014-11-05 09:46:10来源:linux网站作者:linux521

系统环境:CentOS  5.8  x86_64

sed语句:sed  '/./{H;$!d};x;/aa/d'  1

解析:

第一行不是空,被/./匹配,放入保留空间,执行d,在读取下一行进入循环,知道读取的下一行不被/./匹配,不执行d,循环结束。此时保留空间内的内容为:

null\naa\nbb\ncc\n

继续读取下一行进行第二个循环,和第一次一样不再详细解释。

第三次循环关键在 $!d 最后一行没有执行 d 表示循环结束,执行了一侧完整的循环。若没有 $!d 则最后执行 d 然后下一行为空,无法读取,循环没有顺利完成,所以最后的一次循环不会被真正的保留到保留空间中。