真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux數(shù)字排序命令 linux降序排列

每天一個(gè)linux命令(1)sort

sort 是將文件的每一行作為一個(gè)單位,相互比較,比較原則是從首字符向后,依次按照ASCII碼值進(jìn)行比較,默認(rèn)將他們按照升序輸出

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十載品質(zhì),值得信賴!

降序

在輸出中去重

將排序結(jié)果輸出到原文件

sort的默認(rèn)輸出是輸出到標(biāo)準(zhǔn)輸出,如果想把結(jié)果輸出到文件,需要 sort file newfile,但是如果想把結(jié)果輸出到原文件這樣就不行了,這時(shí)就需要 使用sort -o

以數(shù)值來排序

sort 默認(rèn)是按照字符串排序的,這樣就會(huì)出現(xiàn)10比3小的情況,sort -n 就可以告訴sort 以整數(shù)排序

-t 后面跟 分隔符

-k 后面跟數(shù)字,表示用第幾列排序

如 sort -t : -k 2 表示把每行 以:號(hào)分割,按照第二列排序

banana:30:5.5

orange:20:3.4

apple:10:2.5

我們可以看到,當(dāng)baidu 和soho都是100的時(shí)候,baidu排在前面,當(dāng)當(dāng)前域按照默認(rèn)規(guī)矩,是從第一個(gè)域開始進(jìn)行升序排序,因此baidu排在了sohu前面。

sort 支持 -k 2 -k3這種模式,如果你需要,你可以繼續(xù)這么寫下去

你仔細(xì)看看,在-k 3后面偷偷加上了一個(gè)小寫字母r,r和-r的作用是一樣,你也可以把前面的-n去掉 在r后面加上n,如下

其實(shí)-k 選項(xiàng) 功能很強(qiáng)大,語法[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]

從逗號(hào)前后 分為兩大部分,即-k 2,2,是嚴(yán)格使用第一個(gè)域排序,如果只設(shè)置-k 2 其實(shí)是按照從第一個(gè)域到行尾。逗號(hào)分開的每部分又有一個(gè)點(diǎn)表示子域,即-k 1.2表示 按照第一個(gè)域的第二個(gè)字符排序,Modifiers就是我們用到的n和r 如 -k 1.2nr 具體我們看下面的例子。

我們使用了-k 1.2,這就表示對(duì)第一個(gè)域的第二個(gè)字符開始到本域的最后一個(gè)字符為止的字符串進(jìn)行排序。你會(huì)發(fā)現(xiàn)baidu因?yàn)榈诙€(gè)字母是a而名列榜首。sohu和 google第二個(gè)字符都是o,但sohu的h在google的o前面,所以兩者分別排在第二和第三。這和之前說到的按照默認(rèn)的排序規(guī)則 是不同的,當(dāng)?shù)谝粋€(gè)域的第二個(gè)字符相同時(shí),他不會(huì)去按照第一個(gè)字符排序,而是按照后面的字符排序,這是因?yàn)?k 1.2是對(duì)第一個(gè)域的第二個(gè)字符開始到本域的最后一個(gè)字符為止的字符串進(jìn)行排序。而之前的夸域其實(shí)是一種假象。

-u只識(shí)別用-k設(shè)定的域,發(fā)現(xiàn)相同,就將后續(xù)相同的行都刪除

但是這時(shí)候,卻一行也沒有刪除。原來-u是會(huì)權(quán)衡所有-k選項(xiàng),將都相同的才會(huì)刪除,只要其中有一級(jí)不同都不會(huì)輕易刪除的

可以用到b、d、f、i、n 或 r。

其中n和r你肯定已經(jīng)很熟悉了。

b表示忽略本域的簽到空白符號(hào)。

d表示對(duì)本域按照字典順序排序(即,只考慮空白和字母)。

f表示對(duì)本域忽略大小寫進(jìn)行排序。

i表示忽略“不可打印字符”,只針對(duì)可打印字符進(jìn)行排序。(有些ASCII就是不可打印字符,比如\a是報(bào)警,\b是退格,\n是換行,\r是回車等等)

sort 命令詳解

在linux系統(tǒng)使用過程中,提供了sort排序命令,支持常用的排序功能。

sort命令支持很多參數(shù),常用參數(shù)如下:

默認(rèn)情況下,sort命令,以字母序進(jìn)行文本排序。如下:

如果想對(duì)數(shù)字進(jìn)行排序,可以使用-n參數(shù)

sort排序的時(shí)候,可以按字段分割的數(shù)據(jù)進(jìn)行排序。-t參數(shù)表示行的分割字符,-k表示第幾列。當(dāng)然,可以進(jìn)行降序排序,-r參數(shù)可以實(shí)現(xiàn)。

下面是對(duì)passwd文件,以冒號(hào)(:)進(jìn)行分割,然后對(duì)第三列以數(shù)字方式進(jìn)行降序排序。

在du的時(shí)候,加上-h可以使用易讀性數(shù)字,比如2k,1g,3M這種。sort也支持-h參數(shù)。

比如,du一個(gè)文件夾下的目錄大小后,想以文件大小進(jìn)行排序。由于du -h的結(jié)果是3k,2M,1G這種,不能簡(jiǎn)單的按數(shù)字排序。所以,可以使用-h參數(shù)。具體如下:

查看系統(tǒng)進(jìn)程中,內(nèi)存占用最多的前5個(gè)進(jìn)程信息

如果文件內(nèi)容有很多重復(fù)的,需要進(jìn)行去重。sort也是支持的,可以通過-u參數(shù)使用

在shell中,一般將控制臺(tái)內(nèi)容寫入文件,可以使用重定向,但如果想把sort的排序內(nèi)容寫回文件,則不能使用重定向。則需要-o參數(shù)。具體如下:

linux sort 命令整理

無論是工作中使用還是應(yīng)付各種面試,linux sort 都是必須要掌握的 linux 基本命令之一。尤其是 linux sort -k 命令,經(jīng)常會(huì)被搞暈,索性好好研究一下 sort 命令

語法:

選項(xiàng):

參數(shù)就不一一介紹了,直接上例子,首先先看下原始的排序數(shù)據(jù)

cat sort.log

1、打印從哪列開始是亂序

sort -c sort.log; echo $?

sort -C sort.log; echo $?

其中,返回結(jié)果 1,表示文件不是已經(jīng)排序好的文件

2、默認(rèn)排序( 整行進(jìn)行ASCII字符升序)

sort sort.log

3、高能來了,讓人迷糊的 k 語法,首先看下 k 的語法格式

這個(gè)語法格式可以被其中的逗號(hào)(”,”)分為兩大部分,Start部分和End部分

Start和End部分都由三部分組成,其中的Modifier部分就是類似n和r的選項(xiàng)部分,可省略

FStart、Fend,表示使用的域,而CStart則表示在FStart域中從第幾個(gè)字符開始算"排序首字符",同理,CEnd表示結(jié)尾的第幾個(gè)字符是排序末尾字符,.CStart、.CEnd是可以省略的,分別表示從本域的開頭部分開始、到本域的域尾結(jié)束,CEnd設(shè)定為0,也是表示結(jié)尾到域尾??谡f無憑,上幾個(gè)例子吧

3.1 對(duì)第三列進(jìn)行排序,如果不加n,按照 ASCII字符排序

sort -t $'\t' -k 3 sort.log

3.2 加n后,按照數(shù)值排序

sort -t $'\t' -k 3n sort.log

3.3 不指定 FEnd 時(shí),多個(gè) -k 從前往后排序可以,從后往前不行

從后往前,多個(gè) -k,數(shù)據(jù)符合預(yù)期

sort -t $'\t' -k 3n -k 1 sort.log

從后往前,多個(gè) -k ,第三列相同時(shí),按照第一列降序排列,數(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),在第一列相等時(shí),無論其三列是正序排列,還是逆序排列,結(jié)果都一樣,說明后邊的 -k 未生效

當(dāng)指定 FEend 后

sort -t $'\t' -k 1,1 -k 3nr sort.log

3.4 作用域

緊跟在字段后的選項(xiàng)(如"-k3n"的"n"和"-k2nr"的"n","r")稱為私有選項(xiàng),使用短橫線寫在字段外的選項(xiàng)(如"-n"、"-r")為全局選項(xiàng)。當(dāng)沒有為字段分配私有選項(xiàng)時(shí),該排序字段將繼承全局選項(xiàng),所有選項(xiàng)包括但不限于"bfnrhM"

除了"b"選項(xiàng)外,其余選項(xiàng)無論是指定在FStart還是FEnd中都是等價(jià)的,對(duì)于"b"選項(xiàng),指定在FStart則作用于FStart,指定在FEnd則作用于FEnd

sort -t $'\t' -k1r,2 sort.log ,可以看出一、二列都是倒敘排列

3.5 注意

指定n選項(xiàng)按數(shù)值排序時(shí), 由于"n"選項(xiàng)只能識(shí)別數(shù)字和負(fù)號(hào)"-",當(dāng)排序時(shí)遇到無法識(shí)別字符時(shí),將導(dǎo)致該key的排序立即結(jié)束,n選項(xiàng)絕對(duì)不會(huì)跨域進(jìn)行比較

默認(rèn)情況下,sort會(huì)進(jìn)行一次 "最后的排序" ,按照默認(rèn)規(guī)則對(duì)整行進(jìn)行一次排序,這次排序稱為"最后的排序"

sort -t $'\t' -k3n sort.log ,在第三列相等時(shí),整行會(huì)按照 ASCII 進(jìn)行最后的升序排列

sort -t $'\t' -k3,4n -s sort.log ,加了 -s 后,不會(huì)進(jìn)行最后的排序(1000相同時(shí),e在b的前邊了),而是保留原排序

3.6 按照某個(gè)域中的第n個(gè)字符進(jìn)行排序

sort -t $'\t' -k2.3,2.3 sort.log ,按第二列第三個(gè)字符進(jìn)行排序

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 會(huì)對(duì)第二列進(jìn)行去重,而 sort -t $'\t' -k2,2 sort.log|uniq 會(huì)對(duì)整行進(jìn)行去重(當(dāng)然uniq也可以按照第二列進(jìn)行去重)

sort整理完了,歡迎大牛指教

linux 中 ll 命令如何讓查詢結(jié)果按時(shí)間升序或降序排序?

1、用CRT軟件連接一個(gè)Linux系統(tǒng) 。

2、打開需要查看的文件夾。 以 tmp為例。

3、用 ll 命令 查看有哪些文件。

4、默認(rèn)為按照大小進(jìn)行排序。 需要按照時(shí)間進(jìn)行排序。

5、用 ll -t ?命令進(jìn)行時(shí)間排序,這樣是默認(rèn)為降序。

6、用 ll -t | tar 命令進(jìn)行時(shí)間排序,這樣為升序。

linux命令:du、sort、more、cat、less

一個(gè)比較經(jīng)典的問題:

如果線上機(jī)器的磁盤占用率超級(jí)高,怎么辦?

這時(shí)候優(yōu)先想到的肯定是,定位到占用磁盤空間最大的那些文件,然后把可以刪的給刪掉。

那么,問題來了,如何定位到占用磁盤空間最大的文件?

一個(gè)辦法是執(zhí)行如下命令:

里面涉及三個(gè)指令:du、sort、more

既然用到了,就順便多了解一下這三個(gè)指令的用法,算是做下個(gè)人筆記。

首先是du

作用:用來查看文件所占用的磁盤情況。

格式:du [選項(xiàng)] [文件]

可用選項(xiàng)(如下為du --help展示的內(nèi)容):

操作示例:

對(duì)幾個(gè)比較常用的選項(xiàng)單獨(dú)拿出來,在機(jī)器上實(shí)際操作,效果如下:

首先,當(dāng)前目錄如下:

du:

其實(shí)吧,從圖里面可以看到,使用“du”的時(shí)候,最后一行就當(dāng)前目錄的磁盤使用總量,所以,感覺一般情況下-c這個(gè)選項(xiàng)并沒有什么用。

du -s:只計(jì)算總量

不過,注意:-s與-a不能同時(shí)存在,會(huì)報(bào)錯(cuò)的。

sort

作用:對(duì)輸出的結(jié)果進(jìn)行排序

可用選項(xiàng):

-r:代表逆序排序

-n:按照字符串?dāng)?shù)值排序

-g:按照常規(guī)數(shù)值排序

-f:忽略字母大小寫

實(shí)測(cè)效果:

首先是測(cè)試文件的原始狀態(tài):

測(cè)試一:sort

可以發(fā)現(xiàn):

空行排在了第一位;

不管數(shù)字有多大,字符串都會(huì)排在數(shù)字的后面;

數(shù)字之間排序的時(shí)候,優(yōu)先考慮首位數(shù)字(感覺是把數(shù)字也當(dāng)成了一個(gè)字符串進(jìn)行排序);

more

作用:用于一頁一頁地展示文件內(nèi)容。

幾個(gè)常用操作:

空格:翻到下一頁

b:翻到上一頁

/:?jiǎn)?dòng)字符串搜索(類似于vim)

此外:

more +n XXX:從XXX文件的第n行開始展示

more -n XXX:展示XXX文件,并且將n行視為一頁,也就是按空格時(shí),只會(huì)顯示后續(xù)的N行

cat

作用:一次性的展示所有文件內(nèi)容

cat有兩個(gè)比較有用的選項(xiàng):

-n:輸出所有行號(hào)

-b:只對(duì)非空行輸出行號(hào)

此外,

cat支持同時(shí)輸出多個(gè)文件的內(nèi)容:cat XXX YYYY ZZZZ

并且,cat可以與more結(jié)合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more

less:

作用:對(duì)文件或者輸出內(nèi)容進(jìn)行分頁展示,并且less可以用于打開多個(gè)文件

常用操作:

j:向上滾動(dòng)一行

k:向下滾動(dòng)一行(類似于vim)

g:跳到第一行

G:跳到最后一行

b:向上翻一頁

空格:翻頁

n%:跳轉(zhuǎn)到整個(gè)文件的n%處

:e :在使用less打開多個(gè)文件時(shí),使用“:e”選擇跳轉(zhuǎn)到其他文件去

/:進(jìn)行字符串搜索

v:?jiǎn)?dòng)編輯

常用選項(xiàng):

-N:在每一行前面都顯示行號(hào)

-m:顯示讀取文件的百分比

-M:顯示讀取文件的百分比、行號(hào)和總行數(shù)

注意:

其他兩個(gè)比較簡(jiǎn)單的指令:

head:顯示一個(gè)文件的前N行

用法:head -n 行數(shù) 文件名

tail:顯示一個(gè)文件的最后N行

用法:tail -n 行數(shù) 文件名

不過,使用tai的時(shí)候,因?yàn)?f選項(xiàng)可以自動(dòng)顯示新增加的內(nèi)容,所以經(jīng)常會(huì)使用如下方式:

tail -f 文件名


網(wǎng)頁題目:Linux數(shù)字排序命令 linux降序排列
文章位置:http://weahome.cn/article/hpopjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部