管道传输后,反向文件为空

管道传输后,反向文件为空

我刚刚开始学习 Linux,对管道的理解有些问题。我想知道为什么 reversed.txt 是空的?我想先保存未排序的文件,然后传递给反向排序,然后保存到 reversed.txt。我的代码行:

cat file1.txt file2.txt | tee > unsorted.txt | xargs sort -r | xargs cat > reversed.txt 

答案1

您的命令存在许多问题。

  1. 管道将标准输出连接到标准输入。由于您将标准输出重定向tee到文件,因此管道其余部分的输入没有任何内容。它应该是

     cat file1.txt file2.txt | tee unsorted.txt | ...
    
  2. xargs将标准输入转换为参数给定命令的。sortcat命令期望它们的参数是文件名。因此,您要求它在名为原始文件中的每一行的文件上运行sort(然后cat),而不是在行本身上运行。

     cat file1.txt file2.txt | tee unsorted.txt | sort -r | cat > reversed.txt
    

然而最后cat是多余的,所以你所需要的只是

cat file1.txt file2.txt | tee unsorted.txt | sort -r > reversed.txt

相关内容