在sed中的N命令

时间:2012-11-22 12:29:36

标签: unix sed aix

sed中的'N'命令与Cygwin的sed(我认为的GNU sed)& AIX的sed。

$cat > input
Apple
$cat input
Apple
$sed 'N' input
$cat > input
Apple
Orange
$sed 'N' input
Apple
Orange
$

如上所示,第一个sed 'N' input命令没有为AIX的sed打印任何内容,因为没有新的输入行。然而,Cygwin的sed打印了Apple。 一些unix / sed guru可以为此投入一些亮点吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

FWIW,我刚刚发现此行为已在此处记录: http://sed.sourceforge.net/sedfaq6.html#s6.7.5

答案 1 :(得分:0)

根据POSIX标准(我的斜体),看起来AIX表现正常:

  

[2addr]的Ñ

     

附加下一行输入,减去其终止<换行符>,到模式空间,使用嵌入的<换行符>将附加材料与原始材料分开。请注意,当前行号会发生变化。

     

如果没有下一行输入可用,则N命令动词应分支到脚本的末尾并退出而不启动新的循环或将模式空间复制到标准输出。

这是http://pubs.opengroup.org/onlinepubs/009695399/utilities/sed.html

所以,你可能在GNU sed中发现了一个bug(或者至少不符合POSIX)。