现在我正在使用另一个文本文件来存储一个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
答案 0 :(得分:5)
管道是你的朋友: -
cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" >result.txt
答案 1 :(得分:1)
尝试:
tr -d "[,|.]" < text | tr "[A-Z]" "[a-z]" > result.txt
cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" > result.txt
两个命令都做同样的工作。
什么管道(由|
指定)确实只是将一个命令的输出重定向到另一个命令的输入。因此,例如,在foo | bar
中,foo
的输出会重定向到bar
的输入。