2012-08-31 50 views
4

现在,我用另一个文本文件来存储一个UNIX命令的结果,然后使用该文件运行另一个命令,像这样的结果:如何管在另一个UNIX命令

tr -d "[,|.]" <text> temporary.txt 
tr "[A-Z]" "[a-z]" <temporary.txt> result.txt 

我如何将这两个组合成一行,以便不必使用临时文件?以下不工作:

(tr "[A-Z]" "[a-z]" < (tr -d "[,|.]" < text)) > result.txt 

我知道如何使用& &但仍然需要使用临时保持文件。

可能重复:Bash: how to pipe each result of one command to another

回答

4

管道是你的朋友: -

cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" >result.txt 
1

尝试:

  1. tr -d "[,|.]" < text | tr "[A-Z]" "[a-z]" > result.txt
  2. cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" > result.txt

两个命令都做同样的工作。

什么管道(由|指定),只是将一个命令的输出重定向到另一个命令的输出。因此,例如,在foo | bar中,foo的输出被重定向到bar的输入。