001、簡單測試
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 測試資料 01 02 03b 34 05 86 87a 98 09 10 41b 12 13 54 15i 16 17 18 19a 20 [root@PC1 test1]# sort -k 4 a.txt ## 按照第四列進行排序 09 10 41b 12 13 54 15i 16 17 18 19a 20 01 02 03b 34 05 86 87a 98 [root@PC1 test1]# sort -k 3 a.txt ## 按照第三列繼續排序 01 02 03b 34 13 54 15i 16 17 18 19a 20 09 10 41b 12 05 86 87a 98
。
002、-k域的欄位
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 測試資料 01 02 03b 34 05 86 87a 98 09 10 41b 12 13 54 15i 16 17 18 19a 20 [root@PC1 test1]# sort -k 3.3,3.3 a.txt ## 指定第三個域的第三個字元排序,無效 09 10 41b 12 01 02 03b 34 13 54 15i 16 05 86 87a 98 17 18 19a 20 [root@PC1 test1]# sort -t " " -k 3.3,3.3 a.txt ## 使用-t選項指定域的分隔符,生效, 為什麼? 05 86 87a 98 17 18 19a 20 01 02 03b 34 09 10 41b 12 13 54 15i 16
。
003、
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 測試資料 01 02 03b 34 05 86 87a 98 09 10 41b 12 13 54 15i 16 17 18 19a 20 [root@PC1 test1]# sort -k 2.2 a.txt ## 依據第二個欄位的第二個字元排序 01 02 03b 34 09 10 41b 12 17 18 19a 20 13 54 15i 16 05 86 87a 98 [root@PC1 test1]# sort -t " " -k 2.2 a.txt ## 使用-t選項指定空格為分隔符生效 09 10 41b 12 01 02 03b 34 13 54 15i 16 05 86 87a 98 17 18 19a 20
。
004、
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 測試資料 01 02 03b 34 05 86 87a 98 09 10 41b 12 13 54 15i 16 17 18 19a 20 [root@PC1 test1]# sort -k 2.2 a.txt ## 無效 01 02 03b 34 09 10 41b 12 17 18 19a 20 13 54 15i 16 05 86 87a 98 [root@PC1 test1]# sort -t "\t" -k 2.2 a.txt ## 指定製表符分隔符,無效 sort: multi-character tab ‘\\t’ [root@PC1 test1]# sort -t $'\t' -k 2.2 a.txt ## 指定製表符分隔符 09 10 41b 12 01 02 03b 34 13 54 15i 16 05 86 87a 98 17 18 19a 20
。
005、
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 測試資料 01 02 03b 34 05 86 87a 98 09 10 41b 12 13 54 15i 16 17 18 19a 20 [root@PC1 test1]# sort -t $'\t' -k 2.2 a.txt ## 按照第二個欄位的第二個字元開始排序 09 10 41b 12 01 02 03b 34 13 54 15i 16 05 86 87a 98 17 18 19a 20 [root@PC1 test1]# sort -t $'\t' -kr 2.2 a.txt ## 逆向排序指定失敗 sort: invalid number at field start: invalid count at start of ‘r’ [root@PC1 test1]# sort -t $'\t' -k 2.2r a.txt ## 逆向排序 17 18 19a 20 05 86 87a 98 13 54 15i 16 01 02 03b 34 09 10 41b 12
。