Sort

為什麼 sort 有 –output= 選項?

  • August 19, 2022

sort -o似乎是多餘的。當我們可以使用時,使用它有什麼意義sort >

有時不能使用 shell 重定向嗎?

就地對文件進行排序:

sort -o file file

Usingsort 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是標準選項,而--outputGNU 擴展。

引用自:https://unix.stackexchange.com/questions/714125