Linux 排序命令sort

2022-06-24 04:39:12 字數 1754 閱讀 7645

很多時候,我們都會去計算一次資料裡頭的相同型態的資料總數,舉例來說, 使用 last 可以查得這個月份有登陸主機者的身份。那麼我可以針對每個使用者查出他們的總登陸次數嗎? 此時就得要排序與計算之類的命令來輔助了!底下我們介紹幾個好用的排序與統計命令,首先是排序命令sort。 

[root@www ~]# sort [-fbmnrtuk] [file

or stdin]

選項與引數:

-f :忽略大小寫的差異,例如 a 與 a 視為編碼相同;

-b :忽略最前面的空格符部分;

-m :以月份的名字來排序,例如 jan, dec 等等的排序方法;

-n :使用『純數字』進行排序(預設是以文字型態來排序的);

-r :反向排序;

-u :就是 uniq

,相同的資料中,僅出現一行代表;

-t :分隔符,預設是用 [tab] 鍵來分隔;

-k :以那個區間 (field) 來進行排序的意思

範例一:個人賬號都記錄在 /etc/passwd

下,請將賬號進行排序。

[root@www ~]# cat /etc/passwd | sort

adm:x:

3:4:adm:/var/adm:/sbin/nologin

apache:x:

48:48:apache:/var/www:/sbin/nologin

bin:x:

1:1:bin:/bin:/sbin/nologin

daemon:x:

2:2:daemon:/sbin:/sbin/nologin

# 鳥哥省略很多的輸出~由上面的資料看起來,

sort

是預設『以第乙個』資料來排序,

# 而且預設是以『文字』型態來排序的喔!所以由 a 開始排到最後囉!

範例二:/etc/passwd

內容是以 : 來分隔的,我想以第三欄來排序,該如何?

[root@www ~]# cat /etc/passwd | sort -t '

:' -k 3

root:x:

0:0:root:/root:/bin/bash

uucp:x:

10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:

11:0:operator:/root:/sbin/nologin

bin:x:

1:1:bin:/bin:/sbin/nologin

games:x:

12:100:games:/usr/games:/sbin/nologin

# 看到特殊字型的輸出部分了吧?怎麼會這樣排列啊?呵呵!沒錯啦~

# 如果是以文字型態來排序的話,原本就會是這樣,想要使用數字排序:

# cat /etc/passwd | sort -t '

:' -k 3 -n

# 這樣才行啊!用那個 -n 來告知 sort

以數字來排序啊!

範例三:利用

last

,將輸出的資料僅取賬號,並加以排序

[root@www ~]# last | cut -d '

' -f1 | sort

sort 同樣是很常用的命令呢!因為我們常常需要比較一些資訊啦! 舉個上面的第二個例子來說好了!今天假設你有很多的賬號,而且你想要知道最大的使用者 id 目前到哪一號了!呵呵!使用 sort 一下子就可以知道答案咯!當然其使用還不止此啦! 有空的話不妨玩一玩!

Linux 排序命令sort

很多時候,我們都會去計算一次資料裡頭的相同型態的資料總數,舉例來說,使用 last 可以查得這個月份有登陸主機者的身份。那麼我可以針對每個使用者查出他們的總登陸次數嗎?此時就得要排序與計算之類的命令來輔助了!底下我們介紹幾個好用的排序與統計命令,首先是排序命令sort。root www sort f...

Linux排序命令sort筆記

很多時候linux需要對文字相對比較規範的文字資料進行排序,這時候可以使用linux系統下的sort命令進行處理。語法格式 sort ntkr filename 常用引數 n 根據數字進行排序 t 指定的分隔符 k 指定分隔符的第幾列 r 降序排序 用法示例 a 98 80 100 95 d 88 ...

linux基礎命令 排序 sort

sort t 指定分隔符 k 指定那一列排序 root rongbiz002 awk www wwwlogs www.rongbiz.com access log sort t k2 head 120.0.113.75 112.0.141.184 112.0.147.34 112.0.147.34 ...