sed
国家文件d
将:
删除模式空间;立即开始下一个循环。
如果sed
在没有 的情况下运行-n
,会在命令sed
后自动打印模式空间吗?d
我知道在这种情况下,模式空间是空的。所以打印与否没有区别。但我只是好奇。
我有这个例子:
root@u1804:~# seq 10 | sed -r '/5/d'
1
2
3
4
6
7
8
9
10
root@u1804:~#
如您所见,没有5
. 是因为d
直接执行到下一个循环还是自动打印模式空间打印一个空字符串?
sed
国家文件d
将:
删除模式空间;立即开始下一个循环。
如果sed
在没有 的情况下运行-n
,会在命令sed
后自动打印模式空间吗?d
我知道在这种情况下,模式空间是空的。所以打印与否没有区别。但我只是好奇。
我有这个例子:
root@u1804:~# seq 10 | sed -r '/5/d'
1
2
3
4
6
7
8
9
10
root@u1804:~#
如您所见,没有5
. 是因为d
直接执行到下一个循环还是自动打印模式空间打印一个空字符串?
是的,
d
重新启动循环,因此没有自动打印。很容易看出,如果您尝试在d
命令之后附加到模式空间,例如 viaG
或s/^/STUFF/
没有打印任何内容...尝试-即使您保存它,
seq 3 | sed '1h;2d;2G'
它也不会打印两次,然后出于简单的原因尝试附加它最后一个命令永远不会执行 - 之后的所有内容(包括自动打印)都将被忽略(对于当前地址)。标准很明确:1
1h
2G
d
它也在您引用的手册中: