sort -c输出被重定向到一个文件:Linux命令

时间:2014-05-02 02:38:45

标签: linux shell

为什么sort -c输出未被重定向到文件temp.txt? 如果我删除了-c,则重定向,如下所示:

$ cat numericSort
33:Thirty Three:6
11:Eleven:2
45:Forty Five:9
01:Zero One:1
99:Ninety Nine:9
18:Eighteen:01
56:Fifty Six:4
78:Seventy Eight:2


$ sort numericSort > temp.txt


$ cat temp.txt
01:Zero One:1
11:Eleven:2
18:Eighteen:01
33:Thirty Three:6
45:Forty Five:9
56:Fifty Six:4
78:Seventy Eight:2
99:Ninety Nine:9


$ rm temp.txt


$ sort -c numericSort > temp.txt
sort: numericSort:2: disorder: 11:Eleven:2


$ cat temp.txt
# No Output Here

2 个答案:

答案 0 :(得分:4)

sort -c的输出转到stderr,而不是stdout

如果你想改为重定向:

$ sort -c numericSort 2> temp.txt

答案 1 :(得分:3)

基于sort命令

的文档
  

-c, - check, - check = diagnose-first

          check for sorted input; do not sort
     

检查给定文件是否已经排序:如果不是   所有已排序,打印错误消息并退出状态为1.

所以你的命令sort -c numericSort > temp.txt基本上只是检查文件numericSort是否已排序。如果未在STDERR上排序打印错误,则您看不到temp.txt的任何输出。可能你想重定向STDERR而不是

sort -c numericSort 2> temp.txt