新聞中心
在日常的Linux系統(tǒng)操作中,經(jīng)常需要對文本文件進行排序操作。sort是Linux系統(tǒng)中常用的命令之一,能夠?qū)ξ谋疚募膬?nèi)容進行排序操作。sort命令不僅可以對文本進行字母順序排序,還可以實現(xiàn)數(shù)字大小排序。本文將以作為主題進行探討。

在濟南等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站 網(wǎng)站設(shè)計制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,濟南網(wǎng)站建設(shè)費用合理。
一、使用sort命令實現(xiàn)數(shù)字大小排序
sort命令默認使用字母順序進行排序,如果需要實現(xiàn)數(shù)字大小排序,則需要使用-n參數(shù)。下面是一個例子:
“`shell
$ cat number.txt
$ sort -n number.txt
“`
可以看出,sort命令對數(shù)字進行了大小排序,而不是按照字母順序排序。 sort命令還支持對多個文本文件進行排序,例如:
“` shell
$ cat number1.txt
$ cat number2.txt
$ sort -n number1.txt number2.txt
“`
如果要按照數(shù)字大小的倒序進行排序,則需要使用-r參數(shù),例如:
“` shell
$ cat number.txt
$ sort -nr number.txt
“`
二、sort命令的其他參數(shù)
1. -k
sort命令還支持使用-k參數(shù)指定按照哪一列進行排序。例如:
“` shell
$ cat student.txt
zhangsan 18 75
lisi 20 85
wangwu 19 90
$ sort -k 2 student.txt
zhangsan 18 75
wangwu 19 90
lisi 20 85
“`
這里,我們使用-k參數(shù)指定按照第二列進行排序。
2. -t
sort命令還支持使用-t參數(shù)指定列分隔符,默認情況下,sort命令的列分隔符為制表符。例如:
“` shell
$ cat student_space.txt
zhangsan 18 75
lisi 20 85
wangwu 19 90
$ sort -t ‘ ‘ -k 2 student_space.txt
zhangsan 18 75
wangwu 19 90
lisi 20 85
“`
這里,我們使用-t參數(shù)指定列分隔符為空格。
三、結(jié)論
sort命令是Linux系統(tǒng)中一個很強大的命令,能夠?qū)ξ谋具M行排序操作。對于需要實現(xiàn)數(shù)字大小排序的情況,我們只需要使用sort命令的-n參數(shù)即可。sort命令還支持對多個文本文件進行排序,以及按照指定列和分隔符進行排序。使用sort命令,我們能夠方便地對文本進行排序操作,提高工作效率。
相關(guān)問題拓展閱讀:
- linux sort 命令整理
- Linux里面sort -M file3命令作用是什么?
linux sort 命令整理
無論是工作中使用還是應(yīng)付各種面試,linux sort 都是必須要掌握的 linux 基本命令之一。尤其是 linux sort -k 命令,經(jīng)常會被搞暈,索性好好研究一下 sort 命令
語法:
選項:
參數(shù)就不一一介紹了,直接上例子,首先先看下原始的排序數(shù)據(jù)
cat sort.log
1、打印從哪列開始是亂序
sort -c sort.log; echo $?
sort -C sort.log; echo $?
其中,返回結(jié)果 1,表示文件不是已經(jīng)排序好的文件
2、默認排序( 整行進行ASCII字符升序)
sort sort.log
3、高能來了,讓人迷糊的 k 語法,首先看下 k 的語法格式
這個語法格式可以被其中的逗號(”,”)分為兩大部分,Start部分和End部分
Start和End部分都由三部分組成,其中的Modifier部分就是類似n和r的選項部分,可省略
FStart、Fend,表示使用的域,而CStart則表示在FStart域中從第幾個字符開始算”排序首字符”,同理,CEnd表示結(jié)尾的第幾個字符是排序末尾字符,.CStart、.CEnd是可以省略的,分別表示從本域的開頭部分開始、到本域的域尾結(jié)束,CEnd設(shè)定為0,也是表示結(jié)尾到域尾??谡f無憑,上幾個例子吧
3.1 對第三列進行排序,如果不加n,按照 ASCII字符排序
sort -t $’\t’ -k 3 sort.log
3.2 加n后,按照數(shù)值排序
sort -t $’\t’ -k 3n sort.log
3.3 不指定 FEnd 時,多個 -k 從前往后排序可以,從后往前不行
從后往前,多個 -k,數(shù)據(jù)符合預(yù)期
sort -t $’\t’ -k 3n -k 1 sort.log
從后往前,多個 -k ,第三列相同時,按照之一列降序排列,數(shù)據(jù)符合預(yù)期
sort -t $’\t’ -k 3n -k 1r sort.log
更換成從前往后
sort -t $’\t’ -k 1 -k 3n sort.log
sort -t $’\t’ -k 1 -k 3nr sort.log
通過 sort -t $’\t’ -k 1 -k 3n sort.log 和 sort -t $’\t’ -k 1 -k 3nr sort.log 返回的結(jié)果發(fā)現(xiàn),在之一列相等時,無論其三列是正序排列,還是逆序排列,結(jié)果都一樣,說明后邊的 -k 未生效
當指定 FEend 后
sort -t $’\t’ -k 1,1 -k 3nr sort.log
3.4 作用域
緊跟在字段后的選跡謹項(如”-k3n”的”n”和”-k2nr”的”n”,”r”)稱為私有選項,使用短橫線寫在字段外的選項(如”-n”、”-r”)為全局選項。當沒有為字段分配私有選項時,該排序者返字段將繼承全局選項,所有選項包括但不限于”bfnrhM”
除了”b”選項外,其余選項無論是指定在FStart還是FEnd中都是等價的,對于”b”選項,指定在FStart則作用于FStart,指定在FEnd則作用于FEnd
sort -t $’\t’ -k1r,2 sort.log ,可以看出一、二列都是倒敘排列
3.5 注意
指定n選項按數(shù)值排序時, 由于”n”選項只能識別數(shù)字和負號”-“,當排序時遇到無法識別字符時,將導(dǎo)致該key的排序立即結(jié)束,n選項絕對不會跨域進行比較
默認情況下,sort會進行一次
“最后的排序”
,按照默認規(guī)則對整行進行一次排序,這次排序稱為”最后的排序”
sort -t $’\t’ -k3n sort.log ,在第三列相等時,整行會按照 ASCII 進行最后的升序排列
sort -t $’\t’ -k3,4n -s sort.log ,加了 -s 后,不會進行最后的排序(1000相同時,e在b的前邊了),而是保留原排序
3.6 按照某個姿嫌基域中的第n個字符進行排序
sort -t $’\t’ -k2.3,2.3 sort.log ,按第二列第三個字符進行排序
4、 -h 使用易讀性數(shù)字(例如:2K、1G)
sort -t $’\t’ -k5h sort.log
sort -t $’\t’ -k2,2 sort.log|uniq
sort -t $’\t’ -k2,2 -u sort.log 會對第二列進行去重,而 sort -t $’\t’ -k2,2 sort.log|uniq 會對整行進行去重(當然uniq也可以按照第二列進行去重)
sort整理完了,歡迎大牛指教
Linux里面sort -M file3命令作用是什么?
sort的-M是將前面3個字母依照月份的縮寫進行排序,但是用的很少。
sort常用參數(shù):
-n 依照數(shù)值的大小排序。
-u 意味著是唯一的(unique),輸出的結(jié)果是去完重了的。
-r 以相反的順序來排序。
-t 指定排序時所用的欄位分隔字符。
sort企業(yè)案例見連接
網(wǎng)頁鏈接
Linux中sort命令的功能說明,如下所示;
sort命令功能:
排序文件并輸出,
sort命令既可以對特定文件進行排序輸出,也可以從stdin中獲取輸入
sort命令的語法格式:
sort
參數(shù)說明—–
-b:忽略每行前面開始出的空格字符
-c:檢查文件是否已經(jīng)按照順序排序
-d:排序時,處理英文字母、數(shù)字及空格字符外,忽略其他的字符
-f:排序時,將小寫字母視為大寫字母
-i:排序時,除了040至176之間的ASCII字符外,忽略其他的字符
-m:將幾個排序號的文件進行合并
-M:將前面3個字母依照月份的縮寫進行排序
-n:依照數(shù)值的大小排序
-o:將排序后的結(jié)果存入制定的文件
-r:以相反的順序來排序
-t:指定排序時所用的欄位分隔字符
-k:指定需要排序的欄位
例:
sort命令 的示例分享
# cat t.c
#include
#include
#include
int main(){undefined
char c;
while(Read(0,&c,1) !=0)
Write(1,&c,1);
return 0;
}
# sort t.c
}
char c;
#include
#include
#include
int main(){undefined
return 0;
while(Read(0,&c,1) !=0)
linux sort按數(shù)字大小排序的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux sort按數(shù)字大小排序,Linux sort命令實現(xiàn)數(shù)字大小排序,linux sort 命令整理,Linux里面sort -M file3命令作用是什么?的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁題目:Linuxsort命令實現(xiàn)數(shù)字大小排序(linuxsort按數(shù)字大小排序)
文章分享:http://www.dlmjj.cn/article/ccsoodc.html


咨詢
建站咨詢
