一个管道命令的问题

一个管道命令的问题

我想把一个文件名为test的文件排序后输出排序好的第2至第4行,文件内容为:
5
1
4
3
2
我用了这个命令:
sort test | more +2 | head -3
结果输出来却是
1
2
3
而用命令
sort test | head -4 | more +2
输出就是正确的
2
3
4

奇怪,我以为这两条命令的结果应该是一样的啊...
还是因为这几条命令里面有什么东西我没搞清楚?望高手指点
问题出在你用的 more 上。
除非 more 是管道的最后一环,否则它是不会截断上一环的输出的。
因为它被设计用来做过滤“显示”而不是“数据”。
[quote:7bc31cdc78="dannycat"]问题出在你用的 more 上。
除非 more 是管道的最后一环,否则它是不会截断上一环的输出的。
因为它被设计用来做过滤“显示”而不是“数据”。[/quote]
谢谢猫斑竹
虽然还是没完全搞清楚
你的意思是head命令得到的是sort的输出对吧,那么more的输出就消失了?
另外还有什么命令也是像more一样不会截断上一环输出的呢?


努力学习shell中......
[quote:bdcf97292d="w2w2k2k2"]你的意思是head命令得到的是sort的输出对吧,那么more的输出就消失了?[/quote]就是说, more 发现它自己处在管道的中间,于是就罢工了

[quote:bdcf97292d="w2w2k2k2"]另外还有什么命令也是像more一样不会截断上一环输出的呢?[/quote]基本上,可以实现分页的命令应该都有这个特点,不过出了 more 和 less 用的比较多以外,还真想不起来还有啥了
明白了
再感谢一下