Sort
為什麼 sort 有 –output= 選項?
sort -o
似乎是多餘的。當我們可以使用時,使用它有什麼意義sort >
?有時不能使用 shell 重定向嗎?
就地對文件進行排序:
sort -o file file
Using
sort file >file
將首先將呼叫的文件截斷file
為零大小,然後sort
使用該空文件呼叫,無論原始文件的內容是什麼,都會導致一個空的輸出文件。此外,在命令或選項列表由例如腳本自動生成
-o somefile
的情況下,添加到選項的末尾將覆蓋任何先前設置的輸出文件,這允許通過附加選項來控制輸出文件的位置。sort_opt=( some list of options ) if [ ... something ... ]; then # We don't need to go through and delete any old use of "-o" # because this later option would override it. sort_opt+=( -o somefile.out ) fi sort "${sort_opt[@]}" "$thefile"
也可能存在
sort
直接呼叫二進制執行檔的情況,而無需使用 shell 來重定向到任何文件。請注意,這
-o
是標準選項,而--output
GNU 擴展。