如何管道另一个UNIX命令的结果

时间:2012-08-31 01:14:56

标签: unix tr

现在我正在使用另一个文本文件来存储一个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

我知道如何使用&amp;&amp;但仍需要使用临时持有人档案。

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

2 个答案:

答案 0 :(得分:5)

管道是你的朋友: -

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

答案 1 :(得分:1)

尝试:

  1. tr -d "[,|.]" < text | tr "[A-Z]" "[a-z]" > result.txt
  2. cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" > result.txt
  3. 两个命令都做同样的工作。

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