我想在 unix shell 中对文件进行排序。我可以将我的结果重定向到我的输入文件吗?
例如如果我的输入文件是 foo 那么我可以使用
sort foo > foo
或者我应该使用:
sort -o foo foo
以上两者有什么区别?
谢谢,
最佳答案
使用
sort -o foo foo
来自 man
页面:
-o OUTPUT-FILE' Write output to OUTPUT-FILE instead of standard output. If OUTPUT-FILE is one of the input files,
sort' copies it to a temporary file before sorting and writing the output to OUTPUT-FILE.
sort foo > foo
表示将输出写入标准输出,标准输出被重定向到输出文件。在重定向之前,>
将截断/覆盖输出文件(如果存在)。由于输入和输出文件相同,您将丢失输入文件信息。
关于bash - 在不使用临时文件的情况下对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720363/