2012-08-31 49 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的輸入。