http://blog.chinaunix.net/uid/16979052.html
全部博文(286)
分类:
2012-06-29 09:36:43
原文地址:sed之N和$!N的区别和运用 作者:zooyo
这个问题我相信很多同学困扰了很久,懂的大师们早已熟练于心,不懂的小鸟们百思不解。今天我就彻底的分析透彻这2个命令的区别,和在什么场合下使用。我们首先看看它们的区别:
$ seq 5 1 2 3 4 5 $ seq 5 | sed -n 'N;P' #命令⑴ 1 3 $ seq 5 | sed -n '$!N;P' #命令⑵ 1 3 5
1 2 3 4 5 $ seq 5 | sed '$!N;s/\n/ /' #命令⑷ 1 2 3 4 5
$ seq 5 | sed -n 'N;s/\n/ /;p' 1 2 3 4 $ seq 5 | sed -n '$!N;s/\n/ /;p' 1 2 3 4 5
加了 -n 参数后,N中止了命令,后面的p也没有执行,所以第5行没有输出,而 $!N 会对最后一行不操作,N没有起作用,所以没有中断后面的语句执行,p把5输出到了屏幕上。
总结:N 和 $!N 有时候结果并没有差异,那是因为sed默认是输出模式空间内容的。当有 -n 参数时大家就要注意它们两个之间的运用了。
看完这篇博文的同学我想已经彻底搞清楚了N的作用了,谢谢大家对我博客的关注。好记性不如烂笔头^_^