請解釋如何在unix中使用sort指令

請解釋如何在unix中使用sort指令

我是 UNIX 新手。請解釋一下sort命令。我對排序字段分隔符號有疑問。例如:sort -k2, 2 filename,請澄清。請提供小例子。

答案1

sort -k2, 2 filename選項中不應有空格分隔符號存在語法錯誤-k2,2。此外,它可以消除可能的混亂和/或錯誤來源(取決於正在排序的文件的內容),向命令添加字典順序或數字排序選項,以便明確事情應該如何進行被排序。

例子

cat unsorted-file.txt # original unsorted file
9 8 7
6 55 44
3 2 1

sort -k1 -n unsorted-file.txt # example 1
3 2 1
6 55 44
9 8 7

sort -k3 -n unsorted-file.txt # example 2
3 2 1
9 8 7
6 55 44

sort -k1,3 -n unsorted-file.txt # example 3
3 2 1
6 55 44
9 8 7

sort -k2,3 -n unsorted-file.txt # example 4
3 2 1
9 8 7
6 55 44

解釋

預設情況下,欄位分隔符號是非空白到空白的過渡。
KEYDEF-k是 F[.C][OPTS][,F[.C][OPTS]] 表示開始和停止位置,其中 F 是欄位編號,C 是欄位中的字元位置。兩者都是原點 1,停止位置預設為線的末端。
-k1- 第一個字段
-k3- 第三個字段
-k1,3- 開始第一個字段,停止第三個字段
-k2,3- 開始第二個字段,停止第三個字段
-n- 根據字符串數值進行比較

相關內容