体验管道线的乐趣
2015-10-16 本文已影响0人
jere觅
管道线的出现源于命令的一种能力,即命令可以从标准输入读取数据,然后再把数据输送到标准输出,命令的这种能力被管道线这个 shell 特性所利用。编写管道线命令时使用管道操作符 “|”(竖杠),一个命令的标准输出可以管道到另一个命令的标准输入:
command1 | command2
结合已经知道 less 命令接受标准输入,那么就可以通过管道线把任何命令的输出传送给 less ,用 less 来一页一页地显示任何命令的输出,命令把它的运行结果输送到标准输出了。使用这项技术,我们可以方便地检测会产生标准输出的任一命令的运行结果。接着,我们还可以把输出结果按要求进行过滤,新的标准输出结果再输送给标准输入,这就是过滤器。管道线经常用来对数据完成复杂的操作。有可能会把几个命令放在一起组成一个管道线。通常,以这种方式使用的命令被称为过滤器。
过滤器接受输入,以某种方式改变它,然后输出它。例如:
jeremy@ubuntu:~$ ls /tmp /tmp/a | sort | uniq | grep ls
lsl.txt
ls-output
ls-output~
ls.output
程序先将/tmp和/tmp/a目录的内容用ls列出,传输给sort进行合并排序列出,再由uniq过滤,去除重复行,最后找出含有"ls"关键字的匹配文本。