如何获取两个命令的标准输出并将它们作为两个参数传送到 sort 中?

如何获取两个命令的标准输出并将它们作为两个参数传送到 sort 中?

我可以执行以下操作:

sort -nbms file1.txt file2.txt

它将合并两个已经排序的文件。

我希望做的是获取两个命令的输出(已排序)并将其作为输入而不是 file1.txt 和 file2.txt 传入。

那可能吗?

答案1

看起来像是 shell 中复合语句的工作。像这样:

{ command1; command2; } | command3

在 bash 中你也可以使用命令重定向语法:

command3 < <(command1; command2)

以上是适用于任何接受来自 stdin 输入的命令的一般示例。当然,在您的情况下,您希望将其放置sort -nbms为“command3”,并且您还可以使用进程替换语法来代替每个输入文件:

sort -nbms <(command1) <(command2)

后者可以与 sort 等接受多个输入文件或根本不接受 stdin 的命令一起使用。

相关内容