Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix sed中的N命令_Unix_Sed_Aix - Fatal编程技术网

Unix sed中的N命令

Unix sed中的N命令,unix,sed,aix,Unix,Sed,Aix,sed中的'N'命令与Cygwin的sed(我认为是gnused)和AIX的sed的工作方式不同 $cat > input Apple $cat input Apple $sed 'N' input $cat > input Apple Orange $sed 'N' input Apple Orange $ 如上所述,第一个sed'N'输入命令没有为AIX的sed打印任何内容,因为没有新的输入行。然而,Cygwin的sed为同样的目的印刷了苹果公司的。 一些unix/sed大师能

sed中的'N'命令与Cygwin的sed(我认为是gnused)和AIX的sed的工作方式不同

$cat > input
Apple
$cat input
Apple
$sed 'N' input
$cat > input
Apple
Orange
$sed 'N' input
Apple
Orange
$
如上所述,第一个
sed'N'输入
命令没有为AIX的sed打印任何内容,因为没有新的输入行。然而,Cygwin的sed为同样的目的印刷了苹果公司的。
一些unix/sed大师能对此有所启发吗?提前感谢。

根据POSIX标准(我的斜体),AIX似乎运行正常:

[2addr]N

使用嵌入的将下一行输入减去其终止的,附加到图案空间,以将附加的材质与原始材质分离。请注意,当前行号会更改

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

这是我的


因此,您可能在GNU sed中发现了一个bug(或者至少与POSIX不一致)。

FWIW,我刚刚发现此行为已在此处记录:

我怀疑cygwin的新线可能有问题。您可以在输入文件中尝试
dos2unix
,然后再通过
sed