来自 sed 文档:
d Delete the pattern space; immediately start next cycle.
什么是 next cycle 的意思?我的理解是在 d 命令后面的命令不会被执行,sed会从输入流中读取下一行并处理它。但是实际情况好像并不是这样的。请看以下示例:
[root@localhost ~]# cat -A test.txt
aaaaaaaaaaaaaa$
$
bbbbbbbbbbbbb$
$
$
ccccccccc$
ddd$
$
eeeeeee$
[root@localhost ~]# cat test.txt | sed '/^$/d;p;p'
aaaaaaaaaaaaaa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaa
bbbbbbbbbbbbb
bbbbbbbbbbbbb
bbbbbbbbbbbbb
ccccccccc
ccccccccc
ccccccccc
ddd
ddd
ddd
eeeeeee
eeeeeee
eeeeeee
[root@localhost ~]#
如果立即启动下一周期,则 p 命令将没有任何输出。
有人可以帮我解释一下吗?谢谢。