Linux
-m 選項在排序命令中如何工作?
正如
sort
的手冊頁所說:-m, --merge merge already sorted files; do not sort
這是我的兩個簡單文本文件和帶有選項的
sort
命令的結果:-m
soroush@pop-os:~/Desktop$ cat a_file.txt aa ff hh bb soroush@pop-os:~/Desktop$ cat b_file.txt gg tt ss ii cc soroush@pop-os:~/Desktop$ sort -m a_file.txt b_file.txt aa ff gg hh bb tt ss ii cc
我希望看到這個輸出:
aa ff hh bb gg tt ss ii cc
誰能解釋一下這種行為?
合併假定文件已排序:“合併已排序的文件;不排序”,因此將嘗試將它們合併為字母順序。這不是一個簡單的連接。所以在你的例子中:
- aa < gg : 在 a_file 上列印 aa 移動
- ff < gg : 列印 ff 在 a_file 上移動
- hh > gg : 列印 gg 在 b_file 上移動
- hh < tt : 列印 hh 在 a_file 上移動
- bb < tt : 列印 bb 在 a_file 上移動
- 沒有 a_file 剩下,所以列印 b_file 的其餘部分。