2011-10-11 76 views
4

我想對unix shell中的文件進行排序。我可以將我的結果重定向到我的輸入文件嗎?對文件進行排序而不使用臨時文件

例如如果我的輸入文件foo的話,我可以用

sort foo > foo 

,或者我應該使用:

sort -o foo foo 

什麼會是兩個以上的區別?

感謝,

回答

8

使用

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,排序」它複製到一個 臨時文件排序和輸出寫入 OUTPUT-FILE前。

sort foo > foo表示將輸出寫入重定向到輸出文件的標準輸出。重定向之前,>將截斷/覆蓋輸出文件(如果存在)。由於輸入和輸出文件都相同,您將丟失輸入文件信息。

相關問題