5

现在我正在使用另一个文本文件来存储一个 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:如何将一个命令的每个结果通过管道传输到另一个命令

4

2 回答 2

7

管道是你的朋友:-

cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" >result.txt
于 2012-08-31T01:28:04.393 回答
2

尝试:

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

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

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

于 2012-08-31T01:23:08.963 回答