N 在此处主要起来读取下一行操作,sed操作时默认只读入一行到模式空间,有了N参数,就会读取下一行到模式空间。

其实 N和$!N有时输出是没有差异的。


[root@localhost ~]# seq 1 6|sed 'N;s/\n/ /'

1 2

3 4

5 6

[root@localhost ~]# seq 1 6|sed '$!N;s/\n/ /'

1 2

3 4

5 6


所以在一般情况下可以不做区分,但是特殊情况下除外。