linux shell 管道

来源:互联网 发布:超级基因优化液txt手机 编辑:程序博客网 时间:2024/06/05 17:56

本文摘抄自《Linux 命令、编辑器与shell编程》第5章

ISBN:9787302139447
定价:98元

 

5.2.4 管道

 

   shell使用管道将一条命令的标准输出连接到另一条命令的标准输入。管道(有时称为管线)的功能类似于下面的过程:首先将一条命令的标准输出重定向到一个文件,然后将该文件作为另一条命令的标准输入。管道不需要单独处理每条命令,并且不需要中间文件。管道的符号为一条竖线(|),命令行语法格式为:

 

command_a [arguments]|command_b [arguments]

 

上面的命令行得到的结果与下面这组命令行得到的结果相同:

 


command_a [arguments]>temp

 

command_b [arguments]<temp

 

rm temp

 

第1行将command_a 的标准输出重定向到中间文件Temp中,第2行将temp 做为comand_B的标准输入,最后一行将temp删除。使用管道不仅可以简化输入,而且效率更高,因为它不创建临时文件。

 

任何Linux实用程序都可以使用管道,从命令行上指定的文件中接受输入,也可以从标准输入接受输入。可以使用管道和仅从标准输入接受输入的实用程序,如实用程序tr(translate)就只能从标准输入接受输入。使用tr最简单的模式如下:

 

tr string1 string2

 

tr 从标准输入接受输入,查找与string1匹配的字符,找到一个匹配的字符就将string1中的字符替换为string2中的对应字符。下面的例子,tr将文件abstract中的字母a,b,c分别替换为A,B,C.

 

$cat abstract | tr abc ABC

$tr abc ABC <abstract