Linux 中使用 sort 指令分组排序详解
生活随笔
收集整理的這篇文章主要介紹了
Linux 中使用 sort 指令分组排序详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux 中使用 sort 指令分組排序詳解
sort 中進行分組排序主要用到的選項為 -k,此文,我們著重于該選項的使用方式,用到的其它選項不做解釋,有興趣的同學可以查看幫助文檔
1. 數據準備
現有數據如下,文件名 sort_source.txt
Nov 1 : 4548 Nov 2 : 1383 Oct 2 : 3738 Oct 3 : 418 Nov 4 : 1383 Nov 14 : 1383 Nov 11 : 1381 Nov 12 : 1381 Oct 4 : 4105 Oct 5 : 40892. 數據處理
2.1 按某一列進行排序
# 按第一列進行月份排序 sort -k 1M sort_source.txt # 輸出如下: Oct 2 : 3738 Oct 3 : 418 Oct 4 : 4105 Oct 5 : 4089 Nov 11 : 1381 Nov 12 : 1381 Nov 14 : 1383 Nov 1 : 4548 Nov 2 : 1383 Nov 4 : 1383# 按第 2 列進行數字排序 sort -k 2g sort_source.txt # 輸出如下: Nov 1 : 4548 Nov 2 : 1383 Oct 2 : 3738 Oct 3 : 418 Nov 4 : 1383 Oct 4 : 4105 Oct 5 : 4089 Nov 11 : 1381 Nov 12 : 1381 Nov 14 : 13832.2 分組排序
# 先按第一列進行排序(分組),再按第二列進行排序 sort -k 1M -k2g sort_source.txt # 輸出如下: Oct 2 : 3738 Oct 3 : 418 Oct 4 : 4105 Oct 5 : 4089 Nov 1 : 4548 Nov 2 : 1383 Nov 4 : 1383 Nov 11 : 1381 Nov 12 : 1381 Nov 14 : 13832.3 按某列的某幾個字符進行排序
2.3.1 不指定分割符的情況下
不指定分割符的情況下,會從空格處進行計數,起始偏移量為 1
# 按第四列的第二、三個可顯字符進行數字排序 sort -k 4.3,4.4g sort_source.txt # 輸出如下:注意,第3個字符是從空白字符開始算,起始為 1 Oct 5 : 4089 # 第四列第3個字符為0 Oct 4 : 4105 Oct 3 : 418 Nov 11 : 1381 Nov 12 : 1381 Nov 14 : 1383 Nov 2 : 1383 Nov 4 : 1383 Nov 1 : 4548 Oct 2 : 37382.3.2 指定分割符的情況下
指定分割符時,以第一個非指定字符為起始,偏移量為 1
# 按第四列的第二、三個字符進行數字排序 sort -t ' ' -k 4.2,4.3g sort_source.txt # 輸出如下:注意,第2個字符是從非空白字符開始算,起始為 1 Oct 5 : 4089 # 第四列第2個字符為0 Oct 4 : 4105 Oct 3 : 418 Nov 11 : 1381 Nov 12 : 1381 Nov 14 : 1383 Nov 2 : 1383 Nov 4 : 1383 Nov 1 : 4548 Oct 2 : 37382.3.2 指定分割符的情況下按某列內的某一個字符進行排序
注意,要按某個確切的字符進行排序,則起始偏移量和結束偏移量要相同,且必須要指定結束偏移量
# 按第四列的第3個字符進行數字排序 sort -t ' ' -k 4.3,4.3g sort_source.txt # 輸出如下:注意,第3個字符是從非空白字符開始算,起始為 1 Oct 4 : 4105 Oct 2 : 3738 Nov 1 : 4548 Nov 11 : 1381 Nov 12 : 1381 Nov 14 : 1383 Nov 2 : 1383 Nov 4 : 1383 Oct 3 : 418 Oct 5 : 4089總結
以上是生活随笔為你收集整理的Linux 中使用 sort 指令分组排序详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字语音信号处理学习笔记——语音信号的同
- 下一篇: 数字语音信号处理学习笔记——语音信号的同