如何提供文件作为“tsort”的输入?

如何提供文件作为“tsort”的输入?

tsort可以按以下示例提供输入:

$ tsort <<EOF
a b c
b c d e
EOF

如果我有两个文件作为输入,

a
b
c

b
c
d
e

如何在 bash 中提供这两个文件作为 的输入tsort?谢谢。

答案1

您需要将每个文件的所有条目放入一行中。

您可以使用不带引号的引号来执行此操作$(...),它将在空格(包括换行符)上分割,然后您可以使用echo它来将参数打印到一行中。

这应该有效:

{ echo $(cat file1)
  echo $(cat file2)
} | tsort

这应该产生与您的示例相同的输出。


更新:tsort 的输入在任何空白处都会被破坏,因此将每个文件的内容保留在一行中并不重要。

在这种情况下,这应该足够了:

cat file1 file2 | tsort

尽管在您的示例中,您实际上没有多少对,但您的 file1 中有奇数个项目。作为你已经注意到了,这对 tsort 来说是一个问题。

相关内容