如何使用一个命令的输出作为另一个命令的输入

Omi*_*uin 3 rhel sort

我复制了每周周三所做的所有备份 每个文件的时间戳未排序但日期是每个文件的星期三

现在,我需要根据时间戳对每个文件进行排序,例如,如果日期是 1-May 则它应该首先显示 1-May 的备份文件,然后它应该显示 8-May 的文件

我使用了这个命令,但当然它给了我错误的耳光

sort $(cat /home/emerg/Wedbackup.txt)
Run Code Online (Sandbox Code Playgroud)

错误是

sort: invalid option -- w
Run Code Online (Sandbox Code Playgroud)

因为我不知道如何使用一个命令的输出作为第二个命令的输入。我需要建议如何去做。

Chr*_*own 10

在这种情况下不需要使用 cat :

sort /home/emerg/Wedbackup.txt
Run Code Online (Sandbox Code Playgroud)

您的示例的问题是您的文件作为命令行传递进行排序,这不是您想要的。例如,如果这是您的文件:

foo bar
baz qux
wibble wobble
Run Code Online (Sandbox Code Playgroud)

参数如下所示:

sort foo bar baz qux wibble wobble
Run Code Online (Sandbox Code Playgroud)

这不是你想要的。您真正想要的是将文件传递给sort标准输入,这可以像这样完成:

sort < /home/emerg/Wedbackup.txt
Run Code Online (Sandbox Code Playgroud)

这更具有普遍性,因为将文件名作为参数是特定于 的sort,而不是通用约定。

在 sort 的情况下,您应该更喜欢将文件名作为参数而不是 stdin 传递,因为它允许对文件进行搜索,这可以提高排序效率。